On Thu, Apr 12, 2018 at 10:29:33AM +0800, Anand Jain wrote:
> btrfs_free_extra_devids() frees the orphan fsid::devid but its search is
> limited to btrfs_fs_devices::devices, so we dont need uuid_mutex.

>From that it's not clear why there's no locking at all now:

> @@ -897,7 +897,6 @@ void btrfs_free_extra_devids(struct btrfs_fs_devices 
> *fs_devices, int step)
>       struct btrfs_device *device, *next;
>       struct btrfs_device *latest_dev = NULL;
>  
> -     mutex_lock(&uuid_mutex);

ie. why is this not replaced by the device_list_lock. Please resend this
patch and explain in the changelog.

>  again:
>       /* This is the initialized path, it is safe to release the devices. */
>       list_for_each_entry_safe(device, next, &fs_devices->devices, dev_list) {
> @@ -951,8 +950,6 @@ void btrfs_free_extra_devids(struct btrfs_fs_devices 
> *fs_devices, int step)
>       }
>  
>       fs_devices->latest_bdev = latest_dev->bdev;
> -
> -     mutex_unlock(&uuid_mutex);
>  }
>  
>  static void free_device_rcu(struct rcu_head *head)
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to