* [PATCH] Btrfs: remove rcu_barrier in btrfs_close_devices @ 2017-10-10 21:51 Liu Bo 2017-10-11 6:11 ` Anand Jain 0 siblings, 1 reply; 5+ messages in thread From: Liu Bo @ 2017-10-10 21:51 UTC (permalink / raw) To: linux-btrfs 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. Signed-off-by: Liu Bo <bo.li.liu@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; } -- 2.9.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Btrfs: remove rcu_barrier in btrfs_close_devices 2017-10-10 21:51 [PATCH] Btrfs: remove rcu_barrier in btrfs_close_devices Liu Bo @ 2017-10-11 6:11 ` Anand Jain 2017-10-11 7:41 ` Anand Jain 0 siblings, 1 reply; 5+ messages in thread From: Anand Jain @ 2017-10-11 6:11 UTC (permalink / raw) To: Liu Bo, linux-btrfs, linux_lkml_grp 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. Reviewed-by: Anand Jain <anand.jain@oracle.com> Thanks, Anand > Signed-off-by: Liu Bo <bo.li.liu@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; > } > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Btrfs: remove rcu_barrier in btrfs_close_devices 2017-10-11 6:11 ` Anand Jain @ 2017-10-11 7:41 ` Anand Jain 2017-10-11 17:02 ` Liu Bo 0 siblings, 1 reply; 5+ messages in thread From: Anand Jain @ 2017-10-11 7:41 UTC (permalink / raw) To: Liu Bo, linux-btrfs 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, Anand > Reviewed-by: Anand Jain <anand.jain@oracle.com> > > Thanks, Anand > > >> Signed-off-by: Liu Bo <bo.li.liu@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; >> } >> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Btrfs: remove rcu_barrier in btrfs_close_devices 2017-10-11 7:41 ` Anand Jain @ 2017-10-11 17:02 ` Liu Bo 2017-10-30 16:25 ` David Sterba 0 siblings, 1 reply; 5+ messages in thread From: Liu Bo @ 2017-10-11 17:02 UTC (permalink / raw) To: Anand Jain; +Cc: linux-btrfs 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.jain@oracle.com> > > > > Thanks, Anand > > > > > > > Signed-off-by: Liu Bo <bo.li.liu@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; > > > } > > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Btrfs: remove rcu_barrier in btrfs_close_devices 2017-10-11 17:02 ` Liu Bo @ 2017-10-30 16:25 ` David Sterba 0 siblings, 0 replies; 5+ messages in thread From: David Sterba @ 2017-10-30 16:25 UTC (permalink / raw) To: Liu Bo; +Cc: Anand Jain, linux-btrfs On Wed, Oct 11, 2017 at 11:02:49AM -0600, Liu Bo wrote: > 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. Added to the changelog. Reviewed-by: David Sterba <dsterba@suse.com> ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-10-30 16:27 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-10-10 21:51 [PATCH] Btrfs: remove rcu_barrier in btrfs_close_devices Liu Bo 2017-10-11 6:11 ` Anand Jain 2017-10-11 7:41 ` Anand Jain 2017-10-11 17:02 ` Liu Bo 2017-10-30 16:25 ` David Sterba
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).