Patch "orangefs: Fix sysfs not cleanup when dev init failed" has been added to the 4.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    orangefs: Fix sysfs not cleanup when dev init failed

to the 4.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     orangefs-fix-sysfs-not-cleanup-when-dev-init-failed.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 442bd30c3f45f3e485c78bec5d942876ae59361e
Author: Zhang Xiaoxu <zhangxiaoxu5@xxxxxxxxxx>
Date:   Tue Oct 18 12:40:04 2022 +0800

    orangefs: Fix sysfs not cleanup when dev init failed
    
    [ Upstream commit ea60a4ad0cf88b411cde6888b8c890935686ecd7 ]
    
    When the dev init failed, should cleanup the sysfs, otherwise, the
    module will never be loaded since can not create duplicate sysfs
    directory:
    
      sysfs: cannot create duplicate filename '/fs/orangefs'
    
      CPU: 1 PID: 6549 Comm: insmod Tainted: G        W          6.0.0+ #44
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1.fc33 04/01/2014
      Call Trace:
       <TASK>
       dump_stack_lvl+0x34/0x44
       sysfs_warn_dup.cold+0x17/0x24
       sysfs_create_dir_ns+0x16d/0x180
       kobject_add_internal+0x156/0x3a0
       kobject_init_and_add+0xcf/0x120
       orangefs_sysfs_init+0x7e/0x3a0 [orangefs]
       orangefs_init+0xfe/0x1000 [orangefs]
       do_one_initcall+0x87/0x2a0
       do_init_module+0xdf/0x320
       load_module+0x2f98/0x3330
       __do_sys_finit_module+0x113/0x1b0
       do_syscall_64+0x35/0x80
       entry_SYSCALL_64_after_hwframe+0x46/0xb0
    
      kobject_add_internal failed for orangefs with -EEXIST, don't try to register things with the same name in the same directory.
    
    Fixes: 2f83ace37181 ("orangefs: put register_chrdev immediately before register_filesystem")
    Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@xxxxxxxxxx>
    Signed-off-by: Mike Marshall <hubcap@xxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/orangefs/orangefs-mod.c b/fs/orangefs/orangefs-mod.c
index 4113eb0495bf..74b8ee19e167 100644
--- a/fs/orangefs/orangefs-mod.c
+++ b/fs/orangefs/orangefs-mod.c
@@ -147,7 +147,7 @@ static int __init orangefs_init(void)
 		gossip_err("%s: could not initialize device subsystem %d!\n",
 			   __func__,
 			   ret);
-		goto cleanup_device;
+		goto cleanup_sysfs;
 	}
 
 	ret = register_filesystem(&orangefs_fs_type);
@@ -159,11 +159,11 @@ static int __init orangefs_init(void)
 		goto out;
 	}
 
-	orangefs_sysfs_exit();
-
-cleanup_device:
 	orangefs_dev_cleanup();
 
+cleanup_sysfs:
+	orangefs_sysfs_exit();
+
 sysfs_init_failed:
 
 debugfs_init_failed:



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux