Any feedback and update on this patchset? It looks like the first patch is going to fix a bug of btrfs unable to unmount the fs due to deadlock rescan. Thanks, Qu On 2018/5/3 上午5:11, jeffm@suse.com wrote: > From: Jeff Mahoney > > Hi Dave - > > Here's the updated patchset for the rescan races. This fixes the issue > where we'd try to start multiple workers. It introduces a new "ready" > bool that we set during initialization and clear while queuing the worker. > The queuer is also now responsible for most of the initialization. > > I have a separate patch set start that gets rid of the racy mess surrounding > the rescan worker startup. We can handle it in btrfs_run_qgroups and > just set a flag to start it everywhere else. > > -Jeff > > --- > > Jeff Mahoney (3): > btrfs: qgroups, fix rescan worker running races > btrfs: qgroups, remove unnecessary memset before btrfs_init_work > btrfs: qgroup, don't try to insert status item after ENOMEM in rescan > worker > > fs/btrfs/async-thread.c | 1 + > fs/btrfs/ctree.h | 2 + > fs/btrfs/qgroup.c | 100 +++++++++++++++++++++++++++--------------------- > 3 files changed, 60 insertions(+), 43 deletions(-) >