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

Reply via email to