(2014/06/23 21:01), Filipe David Borba Manana wrote:
> If we failed during initialization of sysfs, we weren't unregistering the
> top level btrfs sysfs entry nor the debugfs stuff.
> Not unregistering the top level sysfs entry makes future attempts to reload
> the btrfs module impossible and the following is reported in dmesg:
> 
> [ 2246.451296] WARNING: CPU: 3 PID: 10999 at fs/sysfs/dir.c:486 
> sysfs_warn_dup+0x91/0xb0()
> [ 2246.451298] sysfs: cannot create duplicate filename '/fs/btrfs'
> [ 2246.451298] Modules linked in: btrfs(+) raid6_pq xor bnep rfcomm bluetooth 
> binfmt_misc nfsd auth_rpcgss oid_registry nfs_acl nfs lockd fscache sunrpc 
> parport_pc parport psmouse serio_raw pcspkr evbug i2c_piix4 e1000 floppy 
> [last unloaded: btrfs]
> [ 2246.451310] CPU: 3 PID: 10999 Comm: modprobe Tainted: G        W    
> 3.13.0-fdm-btrfs-next-24+ #7
> [ 2246.451311] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
> [ 2246.451312]  0000000000000009 ffff8800d353fa08 ffffffff816f1da6 
> 0000000000000410
> [ 2246.451314]  ffff8800d353fa58 ffff8800d353fa48 ffffffff8104a32c 
> ffff88020821a290
> [ 2246.451316]  ffff88020821a290 ffff88020821a290 ffff8802148f0000 
> ffff8800d353fb80
> [ 2246.451318] Call Trace:
> [ 2246.451322]  [<ffffffff816f1da6>] dump_stack+0x4e/0x68
> [ 2246.451324]  [<ffffffff8104a32c>] warn_slowpath_common+0x8c/0xc0
> [ 2246.451325]  [<ffffffff8104a416>] warn_slowpath_fmt+0x46/0x50
> [ 2246.451328]  [<ffffffff81367dc5>] ? strlcat+0x65/0x90
> (....)
> 
> Signed-off-by: Filipe David Borba Manana <[email protected]>

Reviewed-by: Satoru Takeuchi <[email protected]>

> ---
> 
> V1..V4: There's no v1, v2, v3 and v4. Bumped directly to v5 to make all 
> patches
>      in the series have the same version.
> V5: Rebased against latest chris/integration branch.
> 
>   fs/btrfs/sysfs.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
> index df39458..06ad529 100644
> --- a/fs/btrfs/sysfs.c
> +++ b/fs/btrfs/sysfs.c
> @@ -710,10 +710,18 @@ int btrfs_init_sysfs(void)
>   
>       ret = btrfs_init_debugfs();
>       if (ret)
> -             return ret;
> +             goto out1;
>   
>       init_feature_attrs();
>       ret = sysfs_create_group(&btrfs_kset->kobj, &btrfs_feature_attr_group);
> +     if (ret)
> +             goto out2;
> +
> +     return 0;
> +out2:
> +     debugfs_remove_recursive(btrfs_debugfs_root_dentry);
> +out1:
> +     kset_unregister(btrfs_kset);
>   
>       return ret;
>   }
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to