diff options
author | Dmitry Monakhov <dmonakhov@openvz.org> | 2010-04-08 20:04:20 +0200 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2010-05-21 19:30:45 +0200 |
commit | 12755627bdcddcdb30a1bfb9a09395a52b1d6838 (patch) | |
tree | b2d69696975d5457648020324f683a45302fbf3c /fs/quota | |
parent | quota: remove sb_has_quota_active in get/set_info (diff) | |
download | linux-12755627bdcddcdb30a1bfb9a09395a52b1d6838.tar.xz linux-12755627bdcddcdb30a1bfb9a09395a52b1d6838.zip |
quota: unify quota init condition in setattr
Quota must being initialized if size or uid/git changes requested.
But initialization performed in two different places:
in case of i_size file system is responsible for dquot init
, but in case of uid/gid init will be called internally in
dquot_transfer().
This ambiguity makes code harder to understand.
Let's move this logic to one common helper function.
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/quota')
-rw-r--r-- | fs/quota/dquot.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index b1a5036560a9..1056a21f0300 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -1822,10 +1822,9 @@ int dquot_transfer(struct inode *inode, struct iattr *iattr) mask |= 1 << GRPQUOTA; chid[GRPQUOTA] = iattr->ia_gid; } - if (sb_any_quota_active(inode->i_sb) && !IS_NOQUOTA(inode)) { - dquot_initialize(inode); + if (sb_any_quota_active(inode->i_sb) && !IS_NOQUOTA(inode)) return __dquot_transfer(inode, chid, mask); - } + return 0; } EXPORT_SYMBOL(dquot_transfer); |