Whamcloud - gitweb
LU-17745 llite: fix the umount panic due to BDI unregister 50/54850/4
authorQian Yingjin <qian@ddn.com>
Fri, 19 Apr 2024 02:53:10 +0000 (22:53 -0400)
committerOleg Drokin <green@whamcloud.com>
Tue, 21 May 2024 18:18:46 +0000 (18:18 +0000)
There is a regression in the patch for LU-16954 on the old RHEL
kernel (RHEL8.2). When the Lustre is unmounted, the client gets
a crash.

In LU-16954, to avoid the remount failure, we explicitly
unregister the sysfs for the @bdi on the new kernel such as Unbutu
2204 v5.15 kernel.
However, this is not needed for the old kernel such RHEL 8.2.
In this patch, we remove the explicit unregister for the old kenel
to avoid the client crash during unmount.

Fixes: dcc1dd39a6 ("LU-16954 llite: add SB_I_CGROUPWB on super block for cgroup")
Test-Parameters: clientdistro=ubuntu2204 testlist=sanity-sec
Test-Parameters: clientdistro=el8.9 testlist=sanity-sec
Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: Ic6df572744bed8994c08fb1369cc9beccbe2d87a
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54850
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Shuichi Ihara <sihara@ddn.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/llite/llite_lib.c

index ce2af4e..8babc83 100644 (file)
@@ -1515,16 +1515,12 @@ out_free_cfg:
 
 static void ll_bdi_device_unregister(struct backing_dev_info *bdi)
 {
+#if !defined(HAVE_BDI_DEBUG_STATS) && defined(SB_I_CGROUPWB) && \
+    !defined(SB_I_PERSB_BDI)
        if (bdi->dev == NULL)
                return;
 
-#if defined(SB_I_CGROUPWB) && !defined(SB_I_PERSB_BDI)
-#ifdef HAVE_BDI_DEBUG_STATS
-       debugfs_remove(bdi->debug_stats);
-       debugfs_remove(bdi->debug_dir);
-#else
        debugfs_remove_recursive(bdi->debug_dir);
-#endif
        device_unregister(bdi->dev);
        bdi->dev = NULL;
 #endif