All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: "Darrick J . Wong" <djwong@kernel.org>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
	linux-xfs@vger.kernel.org
Subject: [PATCH] xfs: Add const qualifiers
Date: Tue, 13 Dec 2022 20:54:45 +0000	[thread overview]
Message-ID: <20221213205446.2998033-1-willy@infradead.org> (raw)

With a container_of() that preserves const, the compiler warns about
all these places which are currently casting away the const.  For
the IUL_ITEM() helper, we want to also make it const-preserving,
and in every other case, we want to just add a const qualifier.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/xfs/scrub/bitmap.c      | 4 ++--
 fs/xfs/xfs_bmap_item.c     | 4 ++--
 fs/xfs/xfs_buf.c           | 4 ++--
 fs/xfs/xfs_extent_busy.c   | 4 ++--
 fs/xfs/xfs_extfree_item.c  | 4 ++--
 fs/xfs/xfs_iunlink_item.c  | 7 ++-----
 fs/xfs/xfs_log_cil.c       | 6 ++++--
 fs/xfs/xfs_refcount_item.c | 4 ++--
 fs/xfs/xfs_rmap_item.c     | 4 ++--
 fs/xfs/xfs_trans.c         | 8 ++++----
 fs/xfs/xfs_trans.h         | 2 +-
 11 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/fs/xfs/scrub/bitmap.c b/fs/xfs/scrub/bitmap.c
index a255f09e9f0a..21bfccaccd85 100644
--- a/fs/xfs/scrub/bitmap.c
+++ b/fs/xfs/scrub/bitmap.c
@@ -67,8 +67,8 @@ xbitmap_range_cmp(
 	const struct list_head	*a,
 	const struct list_head	*b)
 {
-	struct xbitmap_range	*ap;
-	struct xbitmap_range	*bp;
+	const struct xbitmap_range	*ap;
+	const struct xbitmap_range	*bp;
 
 	ap = container_of(a, struct xbitmap_range, list);
 	bp = container_of(b, struct xbitmap_range, list);
diff --git a/fs/xfs/xfs_bmap_item.c b/fs/xfs/xfs_bmap_item.c
index 41323da523d1..00725e87ce9b 100644
--- a/fs/xfs/xfs_bmap_item.c
+++ b/fs/xfs/xfs_bmap_item.c
@@ -279,8 +279,8 @@ xfs_bmap_update_diff_items(
 	const struct list_head		*a,
 	const struct list_head		*b)
 {
-	struct xfs_bmap_intent		*ba;
-	struct xfs_bmap_intent		*bb;
+	const struct xfs_bmap_intent	*ba;
+	const struct xfs_bmap_intent	*bb;
 
 	ba = container_of(a, struct xfs_bmap_intent, bi_list);
 	bb = container_of(b, struct xfs_bmap_intent, bi_list);
diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index 54c774af6e1c..46712df2b02d 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -2121,8 +2121,8 @@ xfs_buf_cmp(
 	const struct list_head	*a,
 	const struct list_head	*b)
 {
-	struct xfs_buf	*ap = container_of(a, struct xfs_buf, b_list);
-	struct xfs_buf	*bp = container_of(b, struct xfs_buf, b_list);
+	const struct xfs_buf	*ap = container_of(a, struct xfs_buf, b_list);
+	const struct xfs_buf	*bp = container_of(b, struct xfs_buf, b_list);
 	xfs_daddr_t		diff;
 
 	diff = ap->b_maps[0].bm_bn - bp->b_maps[0].bm_bn;
diff --git a/fs/xfs/xfs_extent_busy.c b/fs/xfs/xfs_extent_busy.c
index ad22a003f959..e99658892eda 100644
--- a/fs/xfs/xfs_extent_busy.c
+++ b/fs/xfs/xfs_extent_busy.c
@@ -617,9 +617,9 @@ xfs_extent_busy_ag_cmp(
 	const struct list_head	*l1,
 	const struct list_head	*l2)
 {
-	struct xfs_extent_busy	*b1 =
+	const struct xfs_extent_busy	*b1 =
 		container_of(l1, struct xfs_extent_busy, list);
-	struct xfs_extent_busy	*b2 =
+	const struct xfs_extent_busy	*b2 =
 		container_of(l2, struct xfs_extent_busy, list);
 	s32 diff;
 
diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c
index d5130d1fcfae..6cd55d5e123a 100644
--- a/fs/xfs/xfs_extfree_item.c
+++ b/fs/xfs/xfs_extfree_item.c
@@ -390,8 +390,8 @@ xfs_extent_free_diff_items(
 	const struct list_head		*b)
 {
 	struct xfs_mount		*mp = priv;
-	struct xfs_extent_free_item	*ra;
-	struct xfs_extent_free_item	*rb;
+	const struct xfs_extent_free_item	*ra;
+	const struct xfs_extent_free_item	*rb;
 
 	ra = container_of(a, struct xfs_extent_free_item, xefi_list);
 	rb = container_of(b, struct xfs_extent_free_item, xefi_list);
diff --git a/fs/xfs/xfs_iunlink_item.c b/fs/xfs/xfs_iunlink_item.c
index 43005ce8bd48..ff82a93f8a24 100644
--- a/fs/xfs/xfs_iunlink_item.c
+++ b/fs/xfs/xfs_iunlink_item.c
@@ -20,10 +20,7 @@
 
 struct kmem_cache	*xfs_iunlink_cache;
 
-static inline struct xfs_iunlink_item *IUL_ITEM(struct xfs_log_item *lip)
-{
-	return container_of(lip, struct xfs_iunlink_item, item);
-}
+#define IUL_ITEM(lip) container_of(lip, struct xfs_iunlink_item, item)
 
 static void
 xfs_iunlink_item_release(
@@ -38,7 +35,7 @@ xfs_iunlink_item_release(
 
 static uint64_t
 xfs_iunlink_item_sort(
-	struct xfs_log_item	*lip)
+	const struct xfs_log_item	*lip)
 {
 	return IUL_ITEM(lip)->ip->i_ino;
 }
diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c
index eccbfb99e894..bdab056b8820 100644
--- a/fs/xfs/xfs_log_cil.c
+++ b/fs/xfs/xfs_log_cil.c
@@ -1095,8 +1095,10 @@ xlog_cil_order_cmp(
 	const struct list_head	*a,
 	const struct list_head	*b)
 {
-	struct xfs_log_vec	*l1 = container_of(a, struct xfs_log_vec, lv_list);
-	struct xfs_log_vec	*l2 = container_of(b, struct xfs_log_vec, lv_list);
+	const struct xfs_log_vec *l1, *l2;
+
+	l1 = container_of(a, struct xfs_log_vec, lv_list);
+	l2 = container_of(b, struct xfs_log_vec, lv_list);
 
 	return l1->lv_order_id > l2->lv_order_id;
 }
diff --git a/fs/xfs/xfs_refcount_item.c b/fs/xfs/xfs_refcount_item.c
index 858e3e9eb4a8..ab82eb720815 100644
--- a/fs/xfs/xfs_refcount_item.c
+++ b/fs/xfs/xfs_refcount_item.c
@@ -285,8 +285,8 @@ xfs_refcount_update_diff_items(
 	const struct list_head		*b)
 {
 	struct xfs_mount		*mp = priv;
-	struct xfs_refcount_intent	*ra;
-	struct xfs_refcount_intent	*rb;
+	const struct xfs_refcount_intent *ra;
+	const struct xfs_refcount_intent *rb;
 
 	ra = container_of(a, struct xfs_refcount_intent, ri_list);
 	rb = container_of(b, struct xfs_refcount_intent, ri_list);
diff --git a/fs/xfs/xfs_rmap_item.c b/fs/xfs/xfs_rmap_item.c
index 534504ede1a3..f1fce77245e6 100644
--- a/fs/xfs/xfs_rmap_item.c
+++ b/fs/xfs/xfs_rmap_item.c
@@ -328,8 +328,8 @@ xfs_rmap_update_diff_items(
 	const struct list_head		*b)
 {
 	struct xfs_mount		*mp = priv;
-	struct xfs_rmap_intent		*ra;
-	struct xfs_rmap_intent		*rb;
+	const struct xfs_rmap_intent	*ra;
+	const struct xfs_rmap_intent	*rb;
 
 	ra = container_of(a, struct xfs_rmap_intent, ri_list);
 	rb = container_of(b, struct xfs_rmap_intent, ri_list);
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
index 7bd16fbff534..f5cb8c8095c5 100644
--- a/fs/xfs/xfs_trans.c
+++ b/fs/xfs/xfs_trans.c
@@ -861,12 +861,12 @@ xfs_trans_precommit_sort(
 	const struct list_head	*a,
 	const struct list_head	*b)
 {
-	struct xfs_log_item	*lia = container_of(a,
-					struct xfs_log_item, li_trans);
-	struct xfs_log_item	*lib = container_of(b,
-					struct xfs_log_item, li_trans);
+	const struct xfs_log_item	*lia, *lib;
 	int64_t			diff;
 
+	lia = container_of(a, struct xfs_log_item, li_trans);
+	lib = container_of(b, struct xfs_log_item, li_trans);
+
 	/*
 	 * If both items are non-sortable, leave them alone. If only one is
 	 * sortable, move the non-sortable item towards the end of the list.
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index 55819785941c..1d9d6095e5ce 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
@@ -72,7 +72,7 @@ struct xfs_item_ops {
 	void (*iop_format)(struct xfs_log_item *, struct xfs_log_vec *);
 	void (*iop_pin)(struct xfs_log_item *);
 	void (*iop_unpin)(struct xfs_log_item *, int remove);
-	uint64_t (*iop_sort)(struct xfs_log_item *lip);
+	uint64_t (*iop_sort)(const struct xfs_log_item *lip);
 	int (*iop_precommit)(struct xfs_trans *tp, struct xfs_log_item *lip);
 	void (*iop_committing)(struct xfs_log_item *lip, xfs_csn_t seq);
 	xfs_lsn_t (*iop_committed)(struct xfs_log_item *, xfs_lsn_t);
-- 
2.35.1


             reply	other threads:[~2022-12-13 20:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-13 20:54 Matthew Wilcox (Oracle) [this message]
2022-12-14  0:52 ` [PATCH] xfs: Add const qualifiers Dave Chinner
2022-12-14 16:54   ` Matthew Wilcox

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=20221213205446.2998033-1-willy@infradead.org \
    --to=willy@infradead.org \
    --cc=djwong@kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.