summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2021-09-30 15:45:42 -0700
committerDarrick J. Wong <djwong@kernel.org>2021-12-15 17:29:31 -0800
commit1c6d7a06132b86a48b08c3e1754bdc2b5cb7cba6 (patch)
tree9087e7d86fc7d29150af654c29e89565c6995a64
parent18945ffd27477b82920daae333883a330c4fdbe0 (diff)
xfs: don't freeze fs for rmap repairsrepair-rmap-live_2021-12-15
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
-rw-r--r--fs/xfs/scrub/repair.h4
-rw-r--r--fs/xfs/scrub/rmap.c8
-rw-r--r--fs/xfs/scrub/rmap_repair.c14
-rw-r--r--fs/xfs/scrub/rtrmap.c6
-rw-r--r--fs/xfs/scrub/rtrmap_repair.c14
5 files changed, 0 insertions, 46 deletions
diff --git a/fs/xfs/scrub/repair.h b/fs/xfs/scrub/repair.h
index ad4984bea562..8a7d03396bb9 100644
--- a/fs/xfs/scrub/repair.h
+++ b/fs/xfs/scrub/repair.h
@@ -75,13 +75,11 @@ int xrep_ino_dqattach(struct xfs_scrub *sc);
int xrep_reset_perag_resv(struct xfs_scrub *sc);
int xrep_bmap(struct xfs_scrub *sc, int whichfork, bool allow_unwritten);
int xrep_metadata_inode_forks(struct xfs_scrub *sc);
-int xrep_setup_ag_rmapbt(struct xfs_scrub *sc);
int xrep_setup_rtsummary(struct xfs_scrub *sc, unsigned int *resblks);
int xrep_setup_xattr(struct xfs_scrub *sc);
int xrep_setup_directory(struct xfs_scrub *sc);
int xrep_setup_parent(struct xfs_scrub *sc);
int xrep_setup_rtbitmap(struct xfs_scrub *sc, unsigned int *resblks);
-int xrep_setup_rtrmapbt(struct xfs_scrub *sc);
int xrep_setup_nlinks(struct xfs_scrub *sc, unsigned int *buf_bytes);
int xrep_xattr_reset_fork(struct xfs_scrub *sc, struct xfs_inode *ip);
@@ -274,11 +272,9 @@ xrep_setup_nothing(
return 0;
}
#define xrep_setup_ag_allocbt xrep_setup_nothing
-#define xrep_setup_ag_rmapbt xrep_setup_nothing
#define xrep_setup_xattr xrep_setup_nothing
#define xrep_setup_directory xrep_setup_nothing
#define xrep_setup_parent xrep_setup_nothing
-#define xrep_setup_rtrmapbt xrep_setup_nothing
static inline int
xrep_setup_rtsummary(struct xfs_scrub *sc, unsigned int *whatever)
diff --git a/fs/xfs/scrub/rmap.c b/fs/xfs/scrub/rmap.c
index b1fee12132e8..389315d2a8bb 100644
--- a/fs/xfs/scrub/rmap.c
+++ b/fs/xfs/scrub/rmap.c
@@ -27,14 +27,6 @@ int
xchk_setup_ag_rmapbt(
struct xfs_scrub *sc)
{
- if (xchk_could_repair(sc)) {
- int error;
-
- error = xrep_setup_ag_rmapbt(sc);
- if (error)
- return error;
- }
-
return xchk_setup_ag_btree(sc, false);
}
diff --git a/fs/xfs/scrub/rmap_repair.c b/fs/xfs/scrub/rmap_repair.c
index 28d0395109d3..7730c97a4e61 100644
--- a/fs/xfs/scrub/rmap_repair.c
+++ b/fs/xfs/scrub/rmap_repair.c
@@ -120,20 +120,6 @@
* We use the 'xrep_rmap' prefix for all the rmap functions.
*/
-/* Set us up to repair reverse mapping btrees. */
-int
-xrep_setup_ag_rmapbt(
- struct xfs_scrub *sc)
-{
- /*
- * Freeze out anything that can lock an inode. We reconstruct
- * the rmapbt by reading inode bmaps with the AGF held, which is
- * only safe w.r.t. ABBA deadlocks if we're the only ones locking
- * inodes.
- */
- return xchk_fs_freeze(sc);
-}
-
/* Context for collecting rmaps */
struct xrep_rmap {
/* new rmapbt information */
diff --git a/fs/xfs/scrub/rtrmap.c b/fs/xfs/scrub/rtrmap.c
index 25d56cb1b506..0f3f224a69e1 100644
--- a/fs/xfs/scrub/rtrmap.c
+++ b/fs/xfs/scrub/rtrmap.c
@@ -36,12 +36,6 @@ xchk_setup_rtrmapbt(
struct xfs_mount *mp = sc->mp;
int error;
- if (xchk_could_repair(sc)) {
- error = xrep_setup_rtrmapbt(sc);
- if (error)
- return error;
- }
-
error = xchk_setup_fs(sc);
if (error)
return error;
diff --git a/fs/xfs/scrub/rtrmap_repair.c b/fs/xfs/scrub/rtrmap_repair.c
index 418bb4fc50c2..d1c1cb3ee7d9 100644
--- a/fs/xfs/scrub/rtrmap_repair.c
+++ b/fs/xfs/scrub/rtrmap_repair.c
@@ -61,20 +61,6 @@
* We use the 'xrep_rtrmap' prefix for all the rmap functions.
*/
-/* Set us up to repair rt reverse mapping btrees. */
-int
-xrep_setup_rtrmapbt(
- struct xfs_scrub *sc)
-{
- /*
- * Freeze out anything that can lock an inode. We reconstruct the
- * rtrmapbt by reading inode bmaps with the rt rmap btree inode locked,
- * which is only safe w.r.t. ABBA deadlocks if we're the only ones
- * locking inodes.
- */
- return xchk_fs_freeze(sc);
-}
-
/* Context for collecting rmaps */
struct xrep_rtrmap {
/* new rtrmapbt information */