Skip to content

Commit

Permalink
quota: Introduce writeout_quota_sb() (version 4)
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jan Kara authored and Al Viro committed Jun 12, 2009
1 parent 850b201 commit c3f8a40
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
6 changes: 5 additions & 1 deletion fs/sync.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
9 changes: 9 additions & 0 deletions include/linux/quotaops.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ static inline struct quota_info *sb_dqopt(struct super_block *sb)
* declaration of quota_function calls in kernel.
*/
void sync_quota_sb(struct super_block *sb, int type);
static inline void writeout_quota_sb(struct super_block *sb, int type)
{
if (sb->s_qcop->quota_sync)
sb->s_qcop->quota_sync(sb, type);
}

int dquot_initialize(struct inode *inode, int type);
int dquot_drop(struct inode *inode);
Expand Down Expand Up @@ -333,6 +338,10 @@ static inline void sync_quota_sb(struct super_block *sb, int type)
{
}

static inline void writeout_quota_sb(struct super_block *sb, int type)
{
}

static inline int vfs_dq_off(struct super_block *sb, int remount)
{
return 0;
Expand Down

0 comments on commit c3f8a40

Please sign in to comment.