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

Attachment: .config.gz
Description: application/gzip

Reply via email to