]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
xfs: move extent busy tree initialization to xfs_initialize_perag
authorDarrick J. Wong <darrick.wong@oracle.com>
Tue, 31 Jul 2018 20:18:02 +0000 (13:18 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Tue, 31 Jul 2018 20:18:09 +0000 (13:18 -0700)
Move the per-AG busy extent tree initialization to the per-ag structure
initialization since we don't want online repair to leak the old tree.
We only deconstruct the tree at unmount time, so this should be safe.
This also enables us to eliminate the commented out initialization in
the xfsprogs libxfs.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_alloc.c
fs/xfs/xfs_mount.c

index 3c3f2d5119ea4b652535ef7596b0d2d1f21b4c52..9847c1632712d02c225e00048bf686f5b416edfe 100644 (file)
@@ -2755,9 +2755,6 @@ xfs_alloc_read_agf(
                pag->pagf_levels[XFS_BTNUM_RMAPi] =
                        be32_to_cpu(agf->agf_levels[XFS_BTNUM_RMAPi]);
                pag->pagf_refcount_level = be32_to_cpu(agf->agf_refcount_level);
-               spin_lock_init(&pag->pagb_lock);
-               pag->pagb_count = 0;
-               pag->pagb_tree = RB_ROOT;
                pag->pagf_init = 1;
                pag->pagf_agflreset = xfs_agfl_needs_reset(mp, agf);
        }
index 8f739e4d0d1c4b8168c49fc96c0f7247a8e58dbb..99db27d6ac8a4f25de6405d69a8952144b277847 100644 (file)
@@ -207,6 +207,9 @@ xfs_initialize_perag(
                if (xfs_buf_hash_init(pag))
                        goto out_free_pag;
                init_waitqueue_head(&pag->pagb_wait);
+               spin_lock_init(&pag->pagb_lock);
+               pag->pagb_count = 0;
+               pag->pagb_tree = RB_ROOT;
 
                if (radix_tree_preload(GFP_NOFS))
                        goto out_hash_destroy;