Whamcloud - gitweb
LU-12758 quota: clear default flag for new ID 36/36236/2
authorHongchao Zhang <hongchao@whamcloud.com>
Tue, 17 Sep 2019 12:57:50 +0000 (08:57 -0400)
committerOleg Drokin <green@whamcloud.com>
Fri, 27 Sep 2019 23:13:01 +0000 (23:13 +0000)
When setting the quota limits as 0 by "lfs setquota", the default
flag won't be cleared if the lquota_entry is just created for some
quota ID at the first time because the quota limits are the same.

Change-Id: I7f44ce0cb13783ca5bede2f55cd0707f1ccbc8ca
Signed-off-by: Hongchao Zhang <hongchao@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/36236
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shilong Wang <wshilong@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/quota/qmt_handler.c

index 511b7f9..9d2a4cc 100644 (file)
@@ -191,15 +191,16 @@ quota_set:
                dirtied = true;
        }
 
                dirtied = true;
        }
 
-       if (dirtied) {
-               if (!is_default && lqe->lqe_is_default) {
-                       LQUOTA_DEBUG(lqe, "the qid %llu has been set quota"
-                                    " explicitly, clear the default flag",
-                                    lqe->lqe_id.qid_uid);
+       if (!is_default && lqe->lqe_is_default) {
+               LQUOTA_DEBUG(lqe, "the qid %llu has been set quota"
+                            " explicitly, clear the default flag",
+                            lqe->lqe_id.qid_uid);
 
 
-                       qmt_lqe_clear_default(lqe);
-               }
+               qmt_lqe_clear_default(lqe);
+               dirtied = true;
+       }
 
 
+       if (dirtied) {
                if (!is_updated) {
                        /* write new quota settings to disk */
                        rc = qmt_glb_write(env, th, lqe, LQUOTA_BUMP_VER, &ver);
                if (!is_updated) {
                        /* write new quota settings to disk */
                        rc = qmt_glb_write(env, th, lqe, LQUOTA_BUMP_VER, &ver);