Hi Nikolay, Thank you for the patch! Yet something to improve:
[auto build test ERROR on v4.18-rc2] [also build test ERROR on next-20180628] [cannot apply to btrfs/next] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Nikolay-Borisov/Revert-btrfs-fix-a-possible-umount-deadlock/20180629-044154 config: i386-randconfig-a0-201825 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): fs//btrfs/volumes.c: In function 'btrfs_close_one_device': >> fs//btrfs/volumes.c:1041:25: error: 'free_device' undeclared (first use in >> this function) call_rcu(&device->rcu, free_device); ^ fs//btrfs/volumes.c:1041:25: note: each undeclared identifier is reported only once for each function it appears in vim +/free_device +1041 fs//btrfs/volumes.c 1006 1007 static void btrfs_close_one_device(struct btrfs_device *device) 1008 { 1009 struct btrfs_fs_devices *fs_devices = device->fs_devices; 1010 struct btrfs_device *new_device; 1011 struct rcu_string *name; 1012 1013 if (device->bdev) 1014 fs_devices->open_devices--; 1015 1016 if (test_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state) && 1017 device->devid != BTRFS_DEV_REPLACE_DEVID) { 1018 list_del_init(&device->dev_alloc_list); 1019 fs_devices->rw_devices--; 1020 } 1021 1022 if (test_bit(BTRFS_DEV_STATE_MISSING, &device->dev_state)) 1023 fs_devices->missing_devices--; 1024 1025 btrfs_close_bdev(device); 1026 1027 new_device = btrfs_alloc_device(NULL, &device->devid, 1028 device->uuid); 1029 BUG_ON(IS_ERR(new_device)); /* -ENOMEM */ 1030 1031 /* Safe because we are under uuid_mutex */ 1032 if (device->name) { 1033 name = rcu_string_strdup(device->name->str, GFP_NOFS); 1034 BUG_ON(!name); /* -ENOMEM */ 1035 rcu_assign_pointer(new_device->name, name); 1036 } 1037 1038 list_replace_rcu(&device->dev_list, &new_device->dev_list); 1039 new_device->fs_devices = device->fs_devices; 1040 > 1041 call_rcu(&device->rcu, free_device); 1042 } 1043 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip