Whamcloud - gitweb
LU-12809 llite: statfs to use NODELAY with MDS 97/36297/3
authorAlex Zhuravlev <bzzz@whamcloud.com>
Thu, 26 Sep 2019 12:39:36 +0000 (15:39 +0300)
committerOleg Drokin <green@whamcloud.com>
Tue, 12 Nov 2019 04:06:40 +0000 (04:06 +0000)
otherwise client umount can get stuck if MDS is down
for a reason. recovery-small/110k simulates this.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I40f6059d429b51a877deb532c1d0302dba0d5c85
Reviewed-on: https://review.whamcloud.com/36297
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
lustre/llite/llite_lib.c

index 22fa391..83e9490 100644 (file)
@@ -1946,6 +1946,9 @@ int ll_statfs_internal(struct ll_sb_info *sbi, struct obd_statfs *osfs,
        ENTRY;
        max_age = ktime_get_seconds() - sbi->ll_statfs_max_age;
 
        ENTRY;
        max_age = ktime_get_seconds() - sbi->ll_statfs_max_age;
 
+       if (sbi->ll_flags & LL_SBI_LAZYSTATFS)
+               flags |= OBD_STATFS_NODELAY;
+
        rc = obd_statfs(NULL, sbi->ll_md_exp, osfs, max_age, flags);
        if (rc)
                RETURN(rc);
        rc = obd_statfs(NULL, sbi->ll_md_exp, osfs, max_age, flags);
        if (rc)
                RETURN(rc);
@@ -1958,9 +1961,6 @@ int ll_statfs_internal(struct ll_sb_info *sbi, struct obd_statfs *osfs,
        if (osfs->os_state & OS_STATE_SUM)
                GOTO(out, rc);
 
        if (osfs->os_state & OS_STATE_SUM)
                GOTO(out, rc);
 
-       if (sbi->ll_flags & LL_SBI_LAZYSTATFS)
-               flags |= OBD_STATFS_NODELAY;
-
        rc = obd_statfs(NULL, sbi->ll_dt_exp, &obd_osfs, max_age, flags);
        if (rc) /* Possibly a filesystem with no OSTs.  Report MDT totals. */
                GOTO(out, rc = 0);
        rc = obd_statfs(NULL, sbi->ll_dt_exp, &obd_osfs, max_age, flags);
        if (rc) /* Possibly a filesystem with no OSTs.  Report MDT totals. */
                GOTO(out, rc = 0);