Set init_needed flag only when successfully getting dquot, so that we can skip unnecessary subsequent operation.
Signed-off-by: Chengguang Xu <[email protected]> --- fs/quota/dquot.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index fc20e06c56ba..8d4ce2a2b5c8 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -1449,8 +1449,6 @@ static int __dquot_initialize(struct inode *inode, int type) if (!sb_has_quota_active(sb, cnt)) continue; - init_needed = 1; - switch (cnt) { case USRQUOTA: qid = make_kqid_uid(inode->i_uid); @@ -1475,6 +1473,9 @@ static int __dquot_initialize(struct inode *inode, int type) dquot = NULL; } got[cnt] = dquot; + + if (got[cnt]) + init_needed = 1; } /* All required i_dquot has been initialized */ -- 2.20.1

