On Wed, Oct 11, 2017 at 03:41:23PM +0800, Anand Jain wrote: > > > On 10/11/2017 02:11 PM, Anand Jain wrote: > > > > > > On 10/11/2017 05:51 AM, Liu Bo wrote: > > > It was introduced because btrfs used to do blkdev_put in a deferred > > > work, now that btrfs has put blkdev in place, this rcu_barrier can be > > > removed. > > On the 2nd thought, modprobe -r btrfs would still need rcu_barrier(), some > where else outside of umount context ?
Thanks a lot for the comments. modprobe -r btrfs will do btrfs_cleanup_fs_uuids(), where it cleanup every %fs_devices on the list, but when we do btrfs_close_devices(), we have replaced the devices on the list with dummy ones which only have the same name and uuid, so modprobe -r btrfs will free those instead of what we were using, this change won't cause a problem for it. Thanks, -liubo > > Thanks, Anand > > > > Reviewed-by: Anand Jain <anand.j...@oracle.com> > > > > Thanks, Anand > > > > > > > Signed-off-by: Liu Bo <bo.li....@oracle.com> > > > --- > > > fs/btrfs/volumes.c | 6 ------ > > > 1 file changed, 6 deletions(-) > > > > > > diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c > > > index 0e8f16c..d983cea 100644 > > > --- a/fs/btrfs/volumes.c > > > +++ b/fs/btrfs/volumes.c > > > @@ -958,12 +958,6 @@ int btrfs_close_devices(struct btrfs_fs_devices > > > *fs_devices) > > > __btrfs_close_devices(fs_devices); > > > free_fs_devices(fs_devices); > > > } > > > - /* > > > - * Wait for rcu kworkers under __btrfs_close_devices > > > - * to finish all blkdev_puts so device is really > > > - * free when umount is done. > > > - */ > > > - rcu_barrier(); > > > return ret; > > > } > > > -- 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