aboutsummaryrefslogtreecommitdiffstats
path: root/fs/sync.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2009-04-27 16:43:55 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2009-06-11 21:36:04 -0400
commitc3f8a40c1cd5591b882497d1d00d43d0e5bb4698 (patch)
tree8280d4c7748be5d3b2b96c6bd11a643280d0b232 /fs/sync.c
parent850b201b087f5525a0a7278551c2bcd0423c3b26 (diff)
downloadkernel_samsung_smdk4412-c3f8a40c1cd5591b882497d1d00d43d0e5bb4698.zip
kernel_samsung_smdk4412-c3f8a40c1cd5591b882497d1d00d43d0e5bb4698.tar.gz
kernel_samsung_smdk4412-c3f8a40c1cd5591b882497d1d00d43d0e5bb4698.tar.bz2
quota: Introduce writeout_quota_sb() (version 4)
Introduce this function which just writes all the quota structures but avoids all the syncing and cache pruning work to expose quota structures to userspace. Use this function from __sync_filesystem when wait == 0. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/sync.c')
-rw-r--r--fs/sync.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/sync.c b/fs/sync.c
index d90ab77..4487b55 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -27,7 +27,11 @@
*/
static int __sync_filesystem(struct super_block *sb, int wait)
{
- sync_quota_sb(sb, -1);
+ /* Avoid doing twice syncing and cache pruning for quota sync */
+ if (!wait)
+ writeout_quota_sb(sb, -1);
+ else
+ sync_quota_sb(sb, -1);
sync_inodes_sb(sb, wait);
lock_super(sb);
if (sb->s_dirt && sb->s_op->write_super)