Re: [PATCH 1/4] btrfs: Use rcu when iterating devices in btrfs_init_new_device

Johannes Thumshirn
2020-07-22T09:17:21Z

On 22/07/2020 10:09, Nikolay Borisov wrote:
> When adding a new device there's a mandatory check to see if a device is
> being duplicated to the filesystem it's added to. Since this is a
> read-only operations not necessary to take device_list_mutex and can simply
> make do with an rcu-readlock. No semantics changes.

Hmm what are the actual locking rules for the device list? For instance looking
at add_missing_dev() in volumes.c addition to the list is unprotected (both from
read_one_chunk() and read_one_dev()). Others (i.e. btrfs_init_new_device()) do
a list_add_rcu(). clone_fs_devices() takes the device_list_mutex and so on.

Thanks,
Johannes