linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: sandeen@sandeen.net, djwong@kernel.org
Cc: linux-xfs@vger.kernel.org
Subject: [PATCH 37/43] libxfs: use opstate flags and functions for libxfs mount options
Date: Mon, 13 Sep 2021 19:43:22 -0700	[thread overview]
Message-ID: <163158740237.1604118.3025907636672209452.stgit@magnolia> (raw)
In-Reply-To: <163158719952.1604118.14415288328687941574.stgit@magnolia>

From: Darrick J. Wong <djwong@kernel.org>

Port the two LIBXFS_MOUNT flags that actually do anything to set opstate
flags, in preparation for removing m_flags.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 include/xfs_mount.h  |    4 ++++
 libxfs/init.c        |   17 ++++++++++-------
 libxfs/libxfs_priv.h |    2 +-
 repair/xfs_repair.c  |    2 +-
 4 files changed, 16 insertions(+), 9 deletions(-)


diff --git a/include/xfs_mount.h b/include/xfs_mount.h
index 29d0440e..1f4f4390 100644
--- a/include/xfs_mount.h
+++ b/include/xfs_mount.h
@@ -213,6 +213,8 @@ __XFS_UNSUPP_FEAT(readonly)
  * XXX: need real atomic bit ops!
  */
 #define XFS_OPSTATE_INODE32		0	/* inode32 allocator active */
+#define XFS_OPSTATE_DEBUGGER		1	/* is this the debugger? */
+#define XFS_OPSTATE_REPORT_CORRUPTION	2	/* report buffer corruption? */
 
 #define __XFS_IS_OPSTATE(name, NAME) \
 static inline bool xfs_is_ ## name (struct xfs_mount *mp) \
@@ -235,6 +237,8 @@ static inline bool xfs_set_ ## name (struct xfs_mount *mp) \
 }
 
 __XFS_IS_OPSTATE(inode32, INODE32)
+__XFS_IS_OPSTATE(debugger, DEBUGGER)
+__XFS_IS_OPSTATE(reporting_corruption, REPORT_CORRUPTION)
 
 #define __XFS_UNSUPP_OPSTATE(name) \
 static inline bool xfs_is_ ## name (struct xfs_mount *mp) \
diff --git a/libxfs/init.c b/libxfs/init.c
index d36595cf..a96f5389 100644
--- a/libxfs/init.c
+++ b/libxfs/init.c
@@ -441,7 +441,7 @@ rtmount_init(
 		return -1;
 	}
 
-	if (mp->m_rtdev_targp->bt_bdev == 0 && !(flags & LIBXFS_MOUNT_DEBUGGER)) {
+	if (mp->m_rtdev_targp->bt_bdev == 0 && !xfs_is_debugger(mp)) {
 		fprintf(stderr, _("%s: filesystem has a realtime subvolume\n"),
 			progname);
 		return -1;
@@ -456,7 +456,7 @@ rtmount_init(
 	/*
 	 * Allow debugger to be run without the realtime device present.
 	 */
-	if (flags & LIBXFS_MOUNT_DEBUGGER)
+	if (xfs_is_debugger(mp))
 		return 0;
 
 	/*
@@ -715,10 +715,13 @@ libxfs_mount(
 	struct xfs_buf		*bp;
 	struct xfs_sb		*sbp;
 	xfs_daddr_t		d;
-	bool			debugger = (flags & LIBXFS_MOUNT_DEBUGGER);
 	int			error;
 
 	mp->m_features = xfs_sb_version_to_features(sb);
+	if (flags & LIBXFS_MOUNT_DEBUGGER)
+		xfs_set_debugger(mp);
+	if (flags & LIBXFS_MOUNT_WANT_CORRUPTED)
+		xfs_set_reporting_corruption(mp);
 	libxfs_buftarg_init(mp, dev, logdev, rtdev);
 
 	mp->m_finobt_nores = true;
@@ -751,7 +754,7 @@ libxfs_mount(
 	d = (xfs_daddr_t) XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks);
 	if (XFS_BB_TO_FSB(mp, d) != mp->m_sb.sb_dblocks) {
 		fprintf(stderr, _("%s: size check failed\n"), progname);
-		if (!(flags & LIBXFS_MOUNT_DEBUGGER))
+		if (!xfs_is_debugger(mp))
 			return NULL;
 	}
 
@@ -800,7 +803,7 @@ libxfs_mount(
 			XFS_FSS_TO_BB(mp, 1), 0, &bp, NULL);
 	if (error) {
 		fprintf(stderr, _("%s: data size check failed\n"), progname);
-		if (!debugger)
+		if (!xfs_is_debugger(mp))
 			return NULL;
 	} else
 		libxfs_buf_relse(bp);
@@ -814,7 +817,7 @@ libxfs_mount(
 				0, &bp, NULL)) {
 			fprintf(stderr, _("%s: log size checks failed\n"),
 					progname);
-			if (!debugger)
+			if (!xfs_is_debugger(mp))
 				return NULL;
 		}
 		if (bp)
@@ -842,7 +845,7 @@ libxfs_mount(
 		if (error) {
 			fprintf(stderr, _("%s: read of AG %u failed\n"),
 						progname, sbp->sb_agcount);
-			if (!debugger)
+			if (!xfs_is_debugger(mp))
 				return NULL;
 			fprintf(stderr, _("%s: limiting reads to AG 0\n"),
 								progname);
diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h
index 3e5ff2a8..3fc13c52 100644
--- a/libxfs/libxfs_priv.h
+++ b/libxfs/libxfs_priv.h
@@ -153,7 +153,7 @@ enum ce { CE_DEBUG, CE_CONT, CE_NOTE, CE_WARN, CE_ALERT, CE_PANIC };
 } while (0)
 
 #define XFS_WARN_CORRUPT(mp, expr) \
-	( ((mp)->m_flags & LIBXFS_MOUNT_WANT_CORRUPTED) ? \
+	( xfs_is_reporting_corruption(mp) ? \
 	   (printf("%s: XFS_WARN_CORRUPT at %s:%d", #expr, \
 		   __func__, __LINE__), true) : true)
 
diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c
index abde6fe8..bcd44cd5 100644
--- a/repair/xfs_repair.c
+++ b/repair/xfs_repair.c
@@ -979,7 +979,7 @@ main(int argc, char **argv)
 
 	/* Spit out function & line on these corruption macros */
 	if (verbose > 2)
-		mp->m_flags |= LIBXFS_MOUNT_WANT_CORRUPTED;
+		xfs_set_reporting_corruption(mp);
 
 	/* Capture the first writeback so that we can set needsrepair. */
 	if (xfs_has_crc(mp))


  parent reply	other threads:[~2021-09-14  2:43 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-14  2:39 [PATCHSET 00/43] xfs: sync libxfs with 5.15 Darrick J. Wong
2021-09-14  2:40 ` [PATCH 01/43] xfs_{copy,db,logprint,repair}: pass xfs_mount pointers instead of xfs_sb pointers Darrick J. Wong
2021-09-14  2:40 ` [PATCH 02/43] xfs: remove support for disabling quota accounting on a mounted file system Darrick J. Wong
2021-09-14  2:40 ` [PATCH 03/43] xfs: remove the active vs running quota differentiation Darrick J. Wong
2021-09-14  2:40 ` [PATCH 04/43] xfs: replace kmem_alloc_large() with kvmalloc() Darrick J. Wong
2021-09-14  2:40 ` [PATCH 05/43] xfs: allow setting and clearing of log incompat feature flags Darrick J. Wong
2021-09-14  2:40 ` [PATCH 06/43] xfs: add attr state machine tracepoints Darrick J. Wong
2021-09-14  2:40 ` [PATCH 07/43] xfs: Rename __xfs_attr_rmtval_remove Darrick J. Wong
2021-09-14  2:40 ` [PATCH 08/43] xfs: make xfs_rtalloc_query_range input parameters const Darrick J. Wong
2021-09-14  2:40 ` [PATCH 09/43] xfs: make the key parameters to all btree key comparison functions const Darrick J. Wong
2021-09-14  2:40 ` [PATCH 10/43] xfs: make the key parameters to all btree query range " Darrick J. Wong
2021-09-14  2:41 ` [PATCH 11/43] xfs: make the record pointer passed to query_range " Darrick J. Wong
2021-09-14  2:41 ` [PATCH 12/43] xfs: mark the record passed into btree init_key functions as const Darrick J. Wong
2021-09-14  2:41 ` [PATCH 13/43] xfs: make the keys and records passed to btree inorder functions const Darrick J. Wong
2021-09-14  2:41 ` [PATCH 14/43] xfs: mark the record passed into xchk_btree functions as const Darrick J. Wong
2021-09-14  2:41 ` [PATCH 15/43] xfs: make the pointer passed to btree set_root functions const Darrick J. Wong
2021-09-14  2:41 ` [PATCH 16/43] xfs: make the start pointer passed to btree alloc_block " Darrick J. Wong
2021-09-14  2:41 ` [PATCH 17/43] xfs: make the start pointer passed to btree update_lastrec " Darrick J. Wong
2021-09-14  2:41 ` [PATCH 18/43] xfs: constify btree function parameters that are not modified Darrick J. Wong
2021-09-14  2:41 ` [PATCH 19/43] xfs: resolve fork names in trace output Darrick J. Wong
2021-09-14  2:41 ` [PATCH 20/43] xfs: sb verifier doesn't handle uncached sb buffer Darrick J. Wong
2021-09-14  2:41 ` [PATCH 21/43] xfs: rename xfs_has_attr() Darrick J. Wong
2021-09-14  2:42 ` [PATCH 22/43] xfs: rework attr2 feature and mount options Darrick J. Wong
2021-09-14  2:42 ` [PATCH 23/43] xfs: reflect sb features in xfs_mount Darrick J. Wong
2021-09-14  2:42 ` [PATCH 24/43] xfs: replace xfs_sb_version checks with feature flag checks Darrick J. Wong
2021-09-14  2:42 ` [PATCH 25/43] xfs: convert mount flags to features Darrick J. Wong
2021-09-14  2:42 ` [PATCH 26/43] xfs: convert remaining mount flags to state flags Darrick J. Wong
2021-09-14  2:42 ` [PATCH 27/43] xfs: replace XFS_FORCED_SHUTDOWN with xfs_is_shutdown Darrick J. Wong
2021-09-14  2:42 ` [PATCH 28/43] xfs: convert xfs_fs_geometry to use mount feature checks Darrick J. Wong
2021-09-14  2:42 ` [PATCH 29/43] xfs: open code sb verifier " Darrick J. Wong
2021-09-14  2:42 ` [PATCH 30/43] xfs: convert xfs_sb_version_has checks to use mount features Darrick J. Wong
2021-09-14  2:42 ` [PATCH 31/43] libxlog: replace xfs_sb_version checks with feature flag checks Darrick J. Wong
2021-09-14  2:42 ` [PATCH 32/43] libxfs: " Darrick J. Wong
2021-09-14  2:43 ` [PATCH 33/43] xfs_{copy,db,logprint,repair}: " Darrick J. Wong
2021-09-14  2:43 ` [PATCH 34/43] xfs: remove unused xfs_sb_version_has wrappers Darrick J. Wong
2021-09-14  2:43 ` [PATCH 35/43] xfs: introduce xfs_sb_is_v5 helper Darrick J. Wong
2021-09-14  2:43 ` [PATCH 36/43] xfs: kill xfs_sb_version_has_v3inode() Darrick J. Wong
2021-09-14  2:43 ` Darrick J. Wong [this message]
2021-09-14  2:43 ` [PATCH 38/43] libxfs: remove pointless *XFS_MOUNT* flags Darrick J. Wong
2021-09-14  2:43 ` [PATCH 39/43] libxfs: always initialize internal buffer map Darrick J. Wong
2021-09-14  2:43 ` [PATCH 40/43] libxfs: replace XFS_BUF_SET_ADDR with a function Darrick J. Wong
2021-09-14  2:43 ` [PATCH 41/43] xfs: introduce xfs_buf_daddr() Darrick J. Wong
2021-09-14  2:43 ` [PATCH 42/43] xfs: convert bp->b_bn references to xfs_buf_daddr() Darrick J. Wong
2021-09-14  2:43 ` [PATCH 43/43] libxfs: rename buffer cache index variable b_bn Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=163158740237.1604118.3025907636672209452.stgit@magnolia \
    --to=djwong@kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=sandeen@sandeen.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).