mbox series

[0/3] Lockdep fixes for misc-next

Message ID cover.1603137558.git.josef@toxicpanda.com (mailing list archive)
Headers show
Series Lockdep fixes for misc-next | expand

Message

Josef Bacik Oct. 19, 2020, 8:02 p.m. UTC
Hello,

Here's a few lockdep fixes for misc-next+my rwsem patch.  Nothing too crazy, but
the last one is a little wonkey because qgroups does a backref resolution while
adding delayed refs.  Generally we do the right thing with searching the commit
roots and skipping the locking, with the exception of looking up fs roots if we
have to resolve indirect refs.  This obviously uses the normal lookup and
locking stuff, which is problematic in the new world order.  For now I'm fixing
it with a special helper for backref lookups that either finds the root in
cache, or generates a temporary root that's not inserted into the fs roots radix
tree and is only used to do the backref resolution.  Thanks,

Josef

Josef Bacik (3):
  btrfs: drop the path before adding qgroup items when enabling qgroups
  btrfs: protect the fs_info->caching_block_groups differently
  btrfs: add a helper to read the tree_root commit root for backref
    lookup

 fs/btrfs/backref.c     | 14 +++++++-
 fs/btrfs/block-group.c | 12 +++----
 fs/btrfs/disk-io.c     | 79 +++++++++++++++++++++++++++++++-----------
 fs/btrfs/disk-io.h     |  3 ++
 fs/btrfs/extent-tree.c |  2 ++
 fs/btrfs/qgroup.c      | 16 +++++++++
 6 files changed, 98 insertions(+), 28 deletions(-)

Comments

David Sterba Oct. 21, 2020, 4:13 p.m. UTC | #1
On Mon, Oct 19, 2020 at 04:02:28PM -0400, Josef Bacik wrote:
> Hello,
> 
> Here's a few lockdep fixes for misc-next+my rwsem patch.  Nothing too crazy, but
> the last one is a little wonkey because qgroups does a backref resolution while
> adding delayed refs.  Generally we do the right thing with searching the commit
> roots and skipping the locking, with the exception of looking up fs roots if we
> have to resolve indirect refs.  This obviously uses the normal lookup and
> locking stuff, which is problematic in the new world order.  For now I'm fixing
> it with a special helper for backref lookups that either finds the root in
> cache, or generates a temporary root that's not inserted into the fs roots radix
> tree and is only used to do the backref resolution.  Thanks,
> 
> Josef
> 
> Josef Bacik (3):
>   btrfs: drop the path before adding qgroup items when enabling qgroups
>   btrfs: protect the fs_info->caching_block_groups differently
>   btrfs: add a helper to read the tree_root commit root for backref
>     lookup

I'll add 1 and 3 to misc-next for now.