From: Anand Jain Date: Mon, 9 Mar 2015 22:38:23 +0000 (+0800) Subject: Btrfc: sysfs: fix, check if device_dir_kobj is init before destroy X-Git-Tag: firefly_0821_release~176^2~1298^2~30^2~21 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4d435731f99db87020730c4b17e1da148908340e;p=firefly-linux-kernel-4.4.55.git Btrfc: sysfs: fix, check if device_dir_kobj is init before destroy Since the failure code in the btrfs_sysfs_add_one() can call btrfs_sysfs_remove_one() even before device_dir_kobj has been created we need to check if its null. Signed-off-by: Anand Jain Signed-off-by: David Sterba --- diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c index f31fcec01e9c..6218d31a6912 100644 --- a/fs/btrfs/sysfs.c +++ b/fs/btrfs/sysfs.c @@ -522,10 +522,12 @@ void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info) kobject_del(fs_info->space_info_kobj); kobject_put(fs_info->space_info_kobj); } - btrfs_kobj_rm_device(fs_info, NULL); - kobject_del(fs_info->device_dir_kobj); - kobject_put(fs_info->device_dir_kobj); - fs_info->device_dir_kobj = NULL; + if (fs_info->device_dir_kobj) { + btrfs_kobj_rm_device(fs_info, NULL); + kobject_del(fs_info->device_dir_kobj); + kobject_put(fs_info->device_dir_kobj); + fs_info->device_dir_kobj = NULL; + } addrm_unknown_feature_attrs(fs_info, false); sysfs_remove_group(&fs_info->super_kobj, &btrfs_feature_attr_group); __btrfs_sysfs_remove_one(fs_info);