projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[POWERPC] Enable XMON in cell_defconfig
[powerpc.git]
/
fs
/
quota.c
diff --git
a/fs/quota.c
b/fs/quota.c
index
612e04d
..
d6a2be8
100644
(file)
--- a/
fs/quota.c
+++ b/
fs/quota.c
@@
-15,6
+15,7
@@
#include <linux/security.h>
#include <linux/syscalls.h>
#include <linux/buffer_head.h>
#include <linux/security.h>
#include <linux/syscalls.h>
#include <linux/buffer_head.h>
+#include <linux/capability.h>
#include <linux/quotaops.h>
/* Check validity of generic quotactl commands */
#include <linux/quotaops.h>
/* Check validity of generic quotactl commands */
@@
-168,11
+169,11
@@
static void quota_sync_sb(struct super_block *sb, int type)
sync_blockdev(sb->s_bdev);
/* Now when everything is written we can discard the pagecache so
sync_blockdev(sb->s_bdev);
/* Now when everything is written we can discard the pagecache so
- * that userspace sees the changes. We need i_
sem
and so we could
- * not do it inside dqonoff_
sem
. Moreover we need to be carefull
+ * that userspace sees the changes. We need i_
mutex
and so we could
+ * not do it inside dqonoff_
mutex
. Moreover we need to be carefull
* about races with quotaoff() (that is the reason why we have own
* reference to inode). */
* about races with quotaoff() (that is the reason why we have own
* reference to inode). */
-
down(&sb_dqopt(sb)->dqonoff_sem
);
+
mutex_lock(&sb_dqopt(sb)->dqonoff_mutex
);
for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
discard[cnt] = NULL;
if (type != -1 && cnt != type)
for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
discard[cnt] = NULL;
if (type != -1 && cnt != type)
@@
-181,12
+182,12
@@
static void quota_sync_sb(struct super_block *sb, int type)
continue;
discard[cnt] = igrab(sb_dqopt(sb)->files[cnt]);
}
continue;
discard[cnt] = igrab(sb_dqopt(sb)->files[cnt]);
}
-
up(&sb_dqopt(sb)->dqonoff_sem
);
+
mutex_unlock(&sb_dqopt(sb)->dqonoff_mutex
);
for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
if (discard[cnt]) {
for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
if (discard[cnt]) {
-
down(&discard[cnt]->i_sem
);
+
mutex_lock(&discard[cnt]->i_mutex
);
truncate_inode_pages(&discard[cnt]->i_data, 0);
truncate_inode_pages(&discard[cnt]->i_data, 0);
-
up(&discard[cnt]->i_sem
);
+
mutex_unlock(&discard[cnt]->i_mutex
);
iput(discard[cnt]);
}
}
iput(discard[cnt]);
}
}