Re: [PATCH] Revert "btrfs: fix a possible umount deadlock"

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

 



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


[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux