From: Andrey Albershteyn <aalbersh@kernel.org>
To: linux-xfs@vger.kernel.org, aalbersh@kernel.org
Cc: bestswngs@gmail.com, brauner@kernel.org, cem@kernel.org,
chuck.lever@oracle.com, cmaiolino@redhat.com,
dawei.feng@seu.edu.cn, djwong@kernel.org,
gaoyingjie@uniontech.com, hch@lst.de, jiapenglin@tencent.com,
roland.mainz@nrubsig.org, xmei5@asu.edu
Subject: [PATCH 00/21] xfsprogs: libxfs sync for v7.2
Date: Mon, 24 Aug 2026 12:39:58 +0200 [thread overview]
Message-ID: <20260824104022.420566-1-aalbersh@kernel.org> (raw)
Hi all,
This is libxfs sync for v7.1..v7.2.
The conflicts for this sync were in missing FS_XFLAG_CASEFOLD and
FS_XFLAG_CASENONPRESERVING flags, the replacement of xfs_inode->i_ino with
I_INO() macro, and removal of xfs_imap_to_bp() in favor of xfs_read_icluster().
See Interdiff below.
Andrey Albershteyn (1):
xfs: fix null pointer dereference in tracepoint
Christoph Hellwig (14):
xfs: add a XFS_INODE_TO_AGNO helper
xfs: add a XFS_INODE_TO_AGINO helper
xfs: add a XFS_INO_TO_FSB helper
xfs: add a xfs_rmap_inode_bmbt_owner
xfs: add a xfs_rmap_inode_owner helper
xfs: remove the i_ino field in struct xfs_inode
xfs: cleanup xfs_imap
xfs: remove im_len field in struct xfs_imap
xfs: massage xfs_imap_to_bp into xfs_read_icluster
xfs: store an agbno in struct xfs_imap
xfs: mark struct xfs_imap as __packed
xfs: pass back updated nb from xfs_growfs_compute_deltas
xfs: cleanup xfs_growfs_compute_deltas
xfs: check v5 superblock features early
Chuck Lever (1):
xfs: Report case sensitivity in fileattr_get
Darrick J. Wong (1):
xfs: fix pointer arithmetic error on 32-bit systems
Dawei Feng (1):
xfs: fix memory leak in xfs_dqinode_metadir_create()
Lin Jiapeng (1):
xfs: fix exchange-range reflink flag clearing issue with INO1_WRITTEN
Xiang Mei (1):
xfs: fix off-by-one in rtrefcount btree root level validation
Yingjie Gao (1):
xfs: fix exchmaps reservation limit check
db/attrset.c | 2 +-
db/bmap_inflate.c | 4 +-
db/dquot.c | 2 +-
db/iunlink.c | 12 ++--
db/namei.c | 14 ++--
db/rdump.c | 2 +-
include/linux.h | 5 ++
include/xfs_inode.h | 7 +-
libxfs/defer_item.c | 2 +-
libxfs/inode.c | 10 +--
libxfs/iunlink.c | 4 +-
libxfs/libxfs_api_defs.h | 2 +-
libxfs/listxattr.c | 4 +-
libxfs/logitem.c | 10 ++-
libxfs/util.c | 2 +-
libxfs/xfs_ag.c | 42 ++++++-----
libxfs/xfs_ag.h | 5 +-
libxfs/xfs_attr.c | 2 +-
libxfs/xfs_attr_leaf.c | 2 +-
libxfs/xfs_bmap.c | 20 +++---
libxfs/xfs_bmap_btree.c | 8 +--
libxfs/xfs_bmap_btree.h | 2 +-
libxfs/xfs_btree.c | 18 +++--
libxfs/xfs_btree_staging.c | 2 +-
libxfs/xfs_da_btree.c | 2 +-
libxfs/xfs_defer.c | 2 +-
libxfs/xfs_dir2.c | 44 ++++++------
libxfs/xfs_dir2_node.c | 2 +-
libxfs/xfs_dir2_sf.c | 4 +-
libxfs/xfs_dquot_buf.c | 14 +++-
libxfs/xfs_exchmaps.c | 20 ++++--
libxfs/xfs_format.h | 6 ++
libxfs/xfs_ialloc.c | 90 ++++++++++--------------
libxfs/xfs_inode_buf.c | 24 +++----
libxfs/xfs_inode_buf.h | 13 ++--
libxfs/xfs_inode_fork.c | 6 +-
libxfs/xfs_inode_util.c | 15 ++--
libxfs/xfs_metadir.c | 2 +-
libxfs/xfs_parent.c | 8 +--
libxfs/xfs_parent.h | 2 +-
libxfs/xfs_rmap.c | 6 +-
libxfs/xfs_rmap.h | 4 ++
libxfs/xfs_rtbitmap.c | 4 +-
libxfs/xfs_rtrefcount_btree.c | 8 +--
libxfs/xfs_rtrmap_btree.c | 4 +-
libxfs/xfs_sb.c | 6 +-
libxfs/xfs_symlink_remote.c | 6 +-
mkfs/proto.c | 16 ++---
repair/bmap_repair.c | 12 ++--
repair/bulkload.c | 2 +-
repair/phase6.c | 128 +++++++++++++++++-----------------
repair/pptr.c | 100 +++++++++++++-------------
repair/quotacheck.c | 8 +--
repair/rt.c | 6 +-
repair/rtrefcount_repair.c | 2 +-
repair/rtrmap_repair.c | 2 +-
repair/xfs_repair.c | 2 +-
57 files changed, 391 insertions(+), 362 deletions(-)
Interdiff:
diff --git a/db/attrset.c b/db/attrset.c
index 273c20295600..ec51ce2e0775 100644
--- a/db/attrset.c
+++ b/db/attrset.c
@@ -701,7 +701,7 @@ attrlist_print(
.whichfork = XFS_ATTR_FORK,
.op_flags = XFS_DA_OP_OKNOENT,
.dp = ip,
- .owner = ip->i_ino,
+ .owner = I_INO(ip),
.trans = tp,
.attr_filter = attr_flags & XFS_ATTR_NSP_ONDISK_MASK,
.name = name,
diff --git a/db/bmap_inflate.c b/db/bmap_inflate.c
index cc7c197e788d..13891896fc8b 100644
--- a/db/bmap_inflate.c
+++ b/db/bmap_inflate.c
@@ -176,7 +176,7 @@ alloc_bmbt_blocks(
target = XFS_AGB_TO_FSB(mp, tgt_agno, 0);
}
- libxfs_rmap_ino_bmbt_owner(&args.oinfo, ip->i_ino,
+ libxfs_rmap_ino_bmbt_owner(&args.oinfo, I_INO(ip),
XFS_DATA_FORK);
error = -libxfs_alloc_vextent_start_ag(&args, target);
@@ -421,7 +421,7 @@ estimate_size(
report:
dbprintf(_("ino 0x%llx nextents %llu btblocks %llu btheight %u dirty %u\n"),
- ip->i_ino, nextents, bmap_bload.nr_blocks,
+ I_INO(ip), nextents, bmap_bload.nr_blocks,
bmap_bload.btree_height, dirty_blocks);
return 0;
diff --git a/db/dquot.c b/db/dquot.c
index c028d50e4ca4..0c1ebf4e7907 100644
--- a/db/dquot.c
+++ b/db/dquot.c
@@ -104,7 +104,7 @@ dqtype_to_inode(
if (error)
goto out_dp;
- ret = ip->i_ino;
+ ret = I_INO(ip);
libxfs_irele(ip);
out_dp:
if (dp)
diff --git a/db/iunlink.c b/db/iunlink.c
index c73f818242b9..c44917637352 100644
--- a/db/iunlink.c
+++ b/db/iunlink.c
@@ -22,8 +22,8 @@ count_rtblocks(
if (error) {
dbprintf(
_("could not read AG %u agino %u extents, err=%d\n"),
- XFS_INO_TO_AGNO(ip->i_mount, ip->i_ino),
- XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino),
+ XFS_INO_TO_AGNO(ip->i_mount, I_INO(ip)),
+ XFS_INO_TO_AGINO(ip->i_mount, I_INO(ip)),
error);
return 0;
}
@@ -46,6 +46,7 @@ get_next_unlinked(
xfs_ino_t ino;
xfs_agino_t ret;
int error;
+ struct xfs_perag *pag = libxfs_perag_get(mp, agno);
ino = XFS_AGINO_TO_INO(mp, agno, agino);
error = -libxfs_iget(mp, NULL, ino, 0, &ip);
@@ -65,7 +66,8 @@ get_next_unlinked(
dbprintf("\n");
}
- error = -libxfs_imap_to_bp(mp, NULL, &ip->i_imap, &ino_bp);
+ error = -libxfs_read_icluster(pag, NULL, ip->i_imap.im_agbno, &ino_bp);
+ libxfs_perag_put(pag);
if (error) {
libxfs_irele(ip);
goto bad;
@@ -246,8 +248,8 @@ create_unlinked(
dbprintf(_("commit inode: %s\n"), strerror(error));
dbprintf(_("Created unlinked inode %llu in agno %u\n"),
- (unsigned long long)ip->i_ino,
- XFS_INO_TO_AGNO(mp, ip->i_ino));
+ (unsigned long long)I_INO(ip),
+ XFS_INO_TO_AGNO(mp, I_INO(ip)));
libxfs_irele(ip);
return error;
out_rele:
diff --git a/db/namei.c b/db/namei.c
index 0a50ec87df9f..6e5d0ac46360 100644
--- a/db/namei.c
+++ b/db/namei.c
@@ -331,7 +331,7 @@ list_sfdir(
/* . and .. entries */
off = xfs_dir2_db_off_to_dataptr(geo, geo->datablk,
geo->data_entry_offset);
- error = dir_emit(args->trans, args->dp, off, ".", -1, dp->i_ino,
+ error = dir_emit(args->trans, args->dp, off, ".", -1, I_INO(dp),
XFS_DIR3_FT_DIR, private);
if (error)
return error;
@@ -503,7 +503,7 @@ listdir(
.trans = tp,
.dp = dp,
.geo = dp->i_mount->m_dir_geo,
- .owner = dp->i_ino,
+ .owner = I_INO(dp),
};
int error;
@@ -748,7 +748,7 @@ list_leaf_pptrs(
struct xfs_buf *leaf_bp;
int error;
- error = -libxfs_attr3_leaf_read(NULL, ip, ip->i_ino, 0, &leaf_bp);
+ error = -libxfs_attr3_leaf_read(NULL, ip, I_INO(ip), 0, &leaf_bp);
if (error)
return error;
@@ -846,7 +846,7 @@ list_node_pptrs(
libxfs_trans_brelse(NULL, leaf_bp);
- error = -libxfs_attr3_leaf_read(NULL, ip, ip->i_ino,
+ error = -libxfs_attr3_leaf_read(NULL, ip, I_INO(ip),
leafhdr.forw, &leaf_bp);
if (error)
return error;
@@ -1062,7 +1062,7 @@ create_child(
libxfs_trans_ijoin(tp, dp, 0);
libxfs_trans_ijoin(tp, ip, 0);
- error = -libxfs_dir_createname(tp, dp, &xname, ip->i_ino, resblks);
+ error = -libxfs_dir_createname(tp, dp, &xname, I_INO(ip), resblks);
if (error)
goto out_trans;
@@ -1076,7 +1076,7 @@ create_child(
/* Replace the dotdot entry in the child directory. */
if (isdir) {
error = -libxfs_dir_replace(tp, ip, &xfs_name_dotdot,
- dp->i_ino, resblks);
+ I_INO(dp), resblks);
if (error)
goto out_trans;
}
@@ -1287,7 +1287,7 @@ remove_child(
if (error)
goto out_trans;
- error = -libxfs_dir_removename(tp, dp, &xname, ip->i_ino, resblks);
+ error = -libxfs_dir_removename(tp, dp, &xname, I_INO(ip), resblks);
if (error)
goto out_trans;
diff --git a/db/rdump.c b/db/rdump.c
index 599d0727e788..7fd171a9d53f 100644
--- a/db/rdump.c
+++ b/db/rdump.c
@@ -376,7 +376,7 @@ rdump_xattr(
.trans = tp,
.dp = ip,
.geo = mp->m_attr_geo,
- .owner = ip->i_ino,
+ .owner = I_INO(ip),
.attr_filter = attr_flags & XFS_ATTR_NSP_ONDISK_MASK,
.namelen = namelen,
.name = name,
diff --git a/include/linux.h b/include/linux.h
index 8972c9596c75..a6323a97f41d 100644
--- a/include/linux.h
+++ b/include/linux.h
@@ -268,6 +268,11 @@ struct file_attr {
#define RWF_DONTCACHE ((__kernel_rwf_t)0x00000080)
#endif
+#ifndef FS_XFLAG_CASEFOLD
+#define FS_XFLAG_CASEFOLD 0x00040000 /* case-insensitive lookups */
+#define FS_XFLAG_CASENONPRESERVING 0x00080000 /* case not preserved */
+#endif
+
/*
* Reminder: anything added to this file will be compiled into downstream
* userspace projects!
diff --git a/include/xfs_inode.h b/include/xfs_inode.h
index 61d4d285a106..7a933696a0cc 100644
--- a/include/xfs_inode.h
+++ b/include/xfs_inode.h
@@ -66,6 +66,7 @@ struct inode {
mode_t i_mode;
kuid_t i_uid;
kgid_t i_gid;
+ uint64_t i_ino;
uint32_t i_nlink;
xfs_dev_t i_rdev; /* This actually holds xfs_dev_t */
unsigned int i_count;
@@ -218,7 +219,6 @@ static inline bool inode_wrong_type(const struct inode *inode, umode_t mode)
typedef struct xfs_inode {
struct cache_node i_node;
struct xfs_mount *i_mount; /* fs mount struct ptr */
- xfs_ino_t i_ino; /* inode number (agno/agino) */
struct xfs_imap i_imap; /* location for xfs_imap() */
struct xfs_ifork *i_cowfp; /* copy on write extents */
struct xfs_ifork i_df; /* data fork */
@@ -445,4 +445,9 @@ extern void libxfs_irele(struct xfs_inode *ip);
#define xfs_inherit_nosymlinks (false)
#define xfs_inherit_nodefrag (false)
+static inline xfs_ino_t I_INO(const struct xfs_inode *ip)
+{
+ return VFS_IC(ip)->i_ino;
+}
+
#endif /* __XFS_INODE_H__ */
diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c
index 4fc2c74a548c..173499e649ef 100644
--- a/libxfs/defer_item.c
+++ b/libxfs/defer_item.c
@@ -563,7 +563,7 @@ xfs_bmap_update_diff_items(
struct xfs_bmap_intent *ba = bi_entry(a);
struct xfs_bmap_intent *bb = bi_entry(b);
- return ba->bi_owner->i_ino - bb->bi_owner->i_ino;
+ return I_INO(ba->bi_owner) - I_INO(bb->bi_owner);
}
/* Get an BUI. */
diff --git a/libxfs/inode.c b/libxfs/inode.c
index dc7e227e8ee9..21a76c3229f5 100644
--- a/libxfs/inode.c
+++ b/libxfs/inode.c
@@ -151,7 +151,7 @@ libxfs_iget(
return -ENOMEM;
VFS_I(ip)->i_count = 1;
- ip->i_ino = ino;
+ VFS_I(ip)->i_ino = ino;
ip->i_mount = mp;
ip->i_diflags2 = mp->m_ino_geo.new_diflags2;
ip->i_af.if_format = XFS_DINODE_FMT_EXTENTS;
@@ -159,8 +159,8 @@ libxfs_iget(
ip->i_prev_unlinked = NULLAGINO;
spin_lock_init(&VFS_I(ip)->i_lock);
- pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino));
- error = xfs_imap(pag, tp, ip->i_ino, &ip->i_imap, 0);
+ pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, I_INO(ip)));
+ error = xfs_imap(pag, tp, I_INO(ip), &ip->i_imap, 0);
xfs_perag_put(pag);
if (error)
@@ -182,7 +182,7 @@ libxfs_iget(
} else {
struct xfs_buf *bp;
- error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp);
+ error = xfs_read_icluster(pag, tp, ip->i_imap.im_agbno, &bp);
if (error)
goto out_destroy;
@@ -195,11 +195,13 @@ libxfs_iget(
if (error)
goto out_destroy;
}
+ xfs_perag_put(pag);
*ipp = ip;
return 0;
out_destroy:
+ xfs_perag_put(pag);
kmem_cache_free(xfs_inode_cache, ip);
*ipp = NULL;
return error;
diff --git a/libxfs/iunlink.c b/libxfs/iunlink.c
index 2d4dd0aee0b8..aad43dfb27f1 100644
--- a/libxfs/iunlink.c
+++ b/libxfs/iunlink.c
@@ -44,7 +44,7 @@ xfs_iunlink_log_dinode(
int offset;
int error;
- error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &ibp);
+ error = xfs_read_icluster(iup->pag, tp, ip->i_imap.im_agbno, &ibp);
if (error)
return error;
/*
@@ -66,7 +66,7 @@ xfs_iunlink_log_dinode(
}
trace_xfs_iunlink_update_dinode(mp, pag_agno(iup->pag),
- XFS_INO_TO_AGINO(mp, ip->i_ino),
+ XFS_INO_TO_AGINO(mp, I_INO(ip)),
be32_to_cpu(dip->di_next_unlinked),
iup->next_agino);
diff --git a/libxfs/libxfs_api_defs.h b/libxfs/libxfs_api_defs.h
index d7c912e77879..4f542ae7267e 100644
--- a/libxfs/libxfs_api_defs.h
+++ b/libxfs/libxfs_api_defs.h
@@ -200,7 +200,7 @@
#define xfs_iext_lookup_extent libxfs_iext_lookup_extent
#define xfs_iext_next libxfs_iext_next
#define xfs_ifork_zap_attr libxfs_ifork_zap_attr
-#define xfs_imap_to_bp libxfs_imap_to_bp
+#define xfs_read_icluster libxfs_read_icluster
#define xfs_initialize_perag libxfs_initialize_perag
#define xfs_initialize_perag_data libxfs_initialize_perag_data
diff --git a/libxfs/listxattr.c b/libxfs/listxattr.c
index 34205682f022..fb6f1d53b9d8 100644
--- a/libxfs/listxattr.c
+++ b/libxfs/listxattr.c
@@ -101,7 +101,7 @@ xattr_walk_leaf(
struct xfs_buf *leaf_bp;
int error;
- error = -libxfs_attr3_leaf_read(tp, ip, ip->i_ino, 0, &leaf_bp);
+ error = -libxfs_attr3_leaf_read(tp, ip, I_INO(ip), 0, &leaf_bp);
if (error)
return error;
@@ -231,7 +231,7 @@ xattr_walk_node(
if (bitmap_test(seen_blocks, leafhdr.forw, 1))
goto out_bitmap;
- error = -libxfs_attr3_leaf_read(tp, ip, ip->i_ino,
+ error = -libxfs_attr3_leaf_read(tp, ip, I_INO(ip),
leafhdr.forw, &leaf_bp);
if (error)
goto out_bitmap;
diff --git a/libxfs/logitem.c b/libxfs/logitem.c
index d8d86d919cf4..b3b27f1656b6 100644
--- a/libxfs/logitem.c
+++ b/libxfs/logitem.c
@@ -16,6 +16,7 @@
#include "xfs_inode.h"
#include "xfs_trans.h"
#include "xfs_rtbitmap.h"
+#include "xfs_ag.h"
struct kmem_cache *xfs_buf_item_cache;
struct kmem_cache *xfs_ili_cache; /* inode log item cache */
@@ -140,7 +141,7 @@ static uint64_t
xfs_inode_item_sort(
struct xfs_log_item *lip)
{
- return INODE_ITEM(lip)->ili_inode->i_ino;
+ return I_INO(INODE_ITEM(lip)->ili_inode);
}
/*
@@ -248,6 +249,7 @@ xfs_inode_item_precommit(
}
if (!iip->ili_item.li_buf) {
+ struct xfs_perag *pag;
struct xfs_buf *bp;
int error;
@@ -261,7 +263,9 @@ xfs_inode_item_precommit(
* here.
*/
spin_unlock(&iip->ili_lock);
- error = xfs_imap_to_bp(ip->i_mount, tp, &ip->i_imap, &bp);
+ pag = xfs_perag_get(ip->i_mount, XFS_INODE_TO_AGNO(ip));
+ error = xfs_read_icluster(pag, tp, ip->i_imap.im_agbno, &bp);
+ xfs_perag_put(pag);
if (error)
return error;
@@ -316,7 +320,7 @@ xfs_inode_item_init(
iip = ip->i_itemp = kmem_cache_zalloc(xfs_ili_cache, 0);
#ifdef LI_DEBUG
fprintf(stderr, "inode_item_init for inode %llu, iip=%p\n",
- ip->i_ino, iip);
+ I_INO(ip), iip);
#endif
spin_lock_init(&iip->ili_lock);
diff --git a/libxfs/util.c b/libxfs/util.c
index 143d011ac60d..6cbbe9056eba 100644
--- a/libxfs/util.c
+++ b/libxfs/util.c
@@ -343,7 +343,7 @@ xfs_inode_verifier_error(
xfs_alert(NULL, "Metadata %s detected at %p, inode 0x%llx %s",
error == -EFSBADCRC ? "CRC error" : "corruption",
failaddr ? failaddr : __return_address,
- ip->i_ino, name);
+ I_INO(ip), name);
}
/*
diff --git a/libxfs/xfs_log_format.h b/libxfs/xfs_log_format.h
index a4e1b3eb425c..3f5a24dda907 100644
--- a/libxfs/xfs_log_format.h
+++ b/libxfs/xfs_log_format.h
@@ -52,19 +52,6 @@ typedef uint32_t xlog_tid_t;
#define CYCLE_LSN(lsn) ((uint)((lsn)>>32))
#define BLOCK_LSN(lsn) ((uint)(lsn))
-/*
- * By comparing each component, we don't have to worry about extra endian issues
- * in treating two 32 bit numbers as one 64 bit number
- */
-static inline xfs_lsn_t XFS_LSN_CMP(xfs_lsn_t lsn1, xfs_lsn_t lsn2)
-{
- if (CYCLE_LSN(lsn1) != CYCLE_LSN(lsn2))
- return CYCLE_LSN(lsn1) < CYCLE_LSN(lsn2) ? -999 : 999;
- if (BLOCK_LSN(lsn1) != BLOCK_LSN(lsn2))
- return BLOCK_LSN(lsn1) < BLOCK_LSN(lsn2) ? -999 : 999;
- return 0;
-}
-
/* this is used in a spot where we might otherwise double-endian-flip */
#define CYCLE_LSN_DISK(lsn) (((__be32 *)&(lsn))[0])
diff --git a/mkfs/proto.c b/mkfs/proto.c
index dd47e41d833e..bdd0fadda517 100644
--- a/mkfs/proto.c
+++ b/mkfs/proto.c
@@ -289,7 +289,7 @@ writesymlink(
xfs_extlen_t nb = XFS_B_TO_FSB(mp, len);
int error;
- error = -libxfs_symlink_write_target(tp, ip, ip->i_ino, buf, len, nb,
+ error = -libxfs_symlink_write_target(tp, ip, I_INO(ip), buf, len, nb,
nb);
if (error) {
fprintf(stderr,
@@ -417,7 +417,7 @@ writeattr(
struct xfs_da_args args = {
.dp = ip,
.geo = ip->i_mount->m_attr_geo,
- .owner = ip->i_ino,
+ .owner = I_INO(ip),
.whichfork = XFS_ATTR_FORK,
.op_flags = XFS_DA_OP_OKNOENT,
.value = valuebuf,
@@ -548,7 +548,7 @@ newdirent(
rsv = XFS_DIRENTER_SPACE_RES(mp, name->len);
- error = -libxfs_dir_createname(tp, pip, name, ip->i_ino, rsv);
+ error = -libxfs_dir_createname(tp, pip, name, I_INO(ip), rsv);
if (error)
fail(_("directory createname error"), error);
@@ -927,7 +927,7 @@ parseproto(
fail(_("Inode allocation failed"), error);
if (!pip) {
pip = ip;
- mp->m_sb.sb_rootino = ip->i_ino;
+ mp->m_sb.sb_rootino = I_INO(ip);
libxfs_log_sb(tp);
isroot = 1;
} else {
@@ -1057,10 +1057,10 @@ create_sb_metadata_file(
switch (type) {
case XFS_RTGI_BITMAP:
- mp->m_sb.sb_rbmino = ip->i_ino;
+ mp->m_sb.sb_rbmino = I_INO(ip);
break;
case XFS_RTGI_SUMMARY:
- mp->m_sb.sb_rsumino = ip->i_ino;
+ mp->m_sb.sb_rsumino = I_INO(ip);
break;
default:
error = EFSCORRUPTED;
@@ -1634,7 +1634,7 @@ create_nondir_inode(
* hardlink, so we need to store it.
*/
if (file_stat->st_nlink > 1)
- track_hardlink_inode(file_stat, ip->i_ino);
+ track_hardlink_inode(file_stat, I_INO(ip));
libxfs_irele(ip);
}
@@ -1880,7 +1880,7 @@ populate_from_dir(
if (error)
fail(_("Inode allocation failed"), error);
- mp->m_sb.sb_rootino = ip->i_ino;
+ mp->m_sb.sb_rootino = I_INO(ip);
libxfs_log_sb(tp);
newdirectory(mp, tp, ip, ip);
libxfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
diff --git a/repair/bmap_repair.c b/repair/bmap_repair.c
index 192f189de052..57ec430680c9 100644
--- a/repair/bmap_repair.c
+++ b/repair/bmap_repair.c
@@ -134,7 +134,7 @@ xrep_bmap_walk_rmap(
int error;
/* Skip extents which are not owned by this inode and fork. */
- if (rec->rm_owner != rb->sc->ip->i_ino)
+ if (rec->rm_owner != I_INO(rb->sc->ip))
return 0;
error = xrep_bmap_check_fork_rmap(rb, cur, rec);
@@ -252,7 +252,7 @@ xrep_bmap_walk_rtrmap(
int error = 0;
/* Skip extents which are not owned by this inode and fork. */
- if (rec->rm_owner != rb->sc->ip->i_ino)
+ if (rec->rm_owner != I_INO(rb->sc->ip))
return 0;
error = xrep_bmap_check_rtfork_rmap(rb->sc, cur, rec);
@@ -576,7 +576,7 @@ xrep_bmap_build_new_fork(
* Prepare to construct the new fork by initializing the new btree
* structure and creating a fake ifork in the ifakeroot structure.
*/
- libxfs_rmap_ino_bmbt_owner(&oinfo, sc->ip->i_ino, rb->whichfork);
+ libxfs_rmap_ino_bmbt_owner(&oinfo, I_INO(sc->ip), rb->whichfork);
bulkload_init_inode(&rb->new_fork_info, sc, rb->whichfork, &oinfo);
bmap_cur = libxfs_bmbt_init_cursor(sc->mp, NULL, sc->ip,
XFS_STAGING_FORK);
@@ -745,6 +745,7 @@ rebuild_bmap(
xfs_daddr_t bp_bn;
int bp_length;
int error, err2;
+ struct xfs_perag *pag;
bp_bn = xfs_buf_daddr(*ino_bpp);
bp_length = (*ino_bpp)->b_length;
@@ -821,7 +822,10 @@ rebuild_bmap(
* Rebuilding the inode fork rolled the transaction, so we need to
* re-grab the inode cluster buffer and dinode pointer for the caller.
*/
- err2 = -libxfs_imap_to_bp(mp, NULL, &sc.ip->i_imap, ino_bpp);
+ pag = libxfs_perag_get(sc.ip->i_mount, XFS_INODE_TO_AGNO(sc.ip));
+ err2 = -libxfs_read_icluster(pag, NULL, sc.ip->i_imap.im_agbno,
+ ino_bpp);
+ libxfs_perag_put(pag);
if (err2)
do_error(
_("Unable to re-grab inode cluster buffer after failed repair of inode %llu, error %d.\n"),
diff --git a/repair/bulkload.c b/repair/bulkload.c
index a9e51de0a24c..284a3d0ebb14 100644
--- a/repair/bulkload.c
+++ b/repair/bulkload.c
@@ -32,7 +32,7 @@ bulkload_init_inode(
int whichfork,
const struct xfs_owner_info *oinfo)
{
- bulkload_init_ag(bkl, sc, oinfo, XFS_INO_TO_FSB(sc->mp, sc->ip->i_ino));
+ bulkload_init_ag(bkl, sc, oinfo, XFS_INO_TO_FSB(sc->mp, I_INO(sc->ip)));
bkl->ifake.if_fork = kmem_cache_zalloc(xfs_ifork_cache, 0);
bkl->ifake.if_fork_size = xfs_inode_fork_size(sc->ip, whichfork);
}
diff --git a/repair/phase6.c b/repair/phase6.c
index 75429d4ca111..6727245b01f3 100644
--- a/repair/phase6.c
+++ b/repair/phase6.c
@@ -277,7 +277,7 @@ dir_hash_check(
if (seeval == DIR_HASH_CK_OK)
return 0;
do_warn(_("bad hash table for directory inode %" PRIu64 " (%s): "),
- ip->i_ino, seevalstr[seeval]);
+ I_INO(ip), seevalstr[seeval]);
if (!no_modify)
do_warn(_("rebuilding\n"));
else
@@ -654,8 +654,8 @@ _("Couldn't create rtgroup %u %s inode, error %d\n"),
ip = rtg->rtg_inodes[type];
/* Mark the inode in use. */
- mark_ino_inuse(mp, ip->i_ino, S_IFREG, mp->m_rtdirip->i_ino);
- mark_ino_metadata(mp, ip->i_ino);
+ mark_ino_inuse(mp, I_INO(ip), S_IFREG, I_INO(mp->m_rtdirip));
+ mark_ino_metadata(mp, I_INO(ip));
return true;
}
@@ -786,7 +786,7 @@ mk_metadir(
libxfs_trans_ijoin(tp, mp->m_metadirip, 0);
libxfs_metafile_set_iflag(tp, mp->m_metadirip, XFS_METAFILE_DIR);
- mark_ino_metadata(mp, mp->m_metadirip->i_ino);
+ mark_ino_metadata(mp, I_INO(mp->m_metadirip));
error = -libxfs_trans_commit(tp);
if (error)
@@ -905,7 +905,7 @@ mk_orphanage(
do_error(
_("can't make %s, createname error %d\n"),
ORPHANAGE, error);
- add_parent_ptr(du.ip->i_ino, (unsigned char *)ORPHANAGE, du.dp, false);
+ add_parent_ptr(I_INO(du.ip), (unsigned char *)ORPHANAGE, du.dp, false);
/*
* We bumped up the link count in the root directory to account
@@ -974,7 +974,7 @@ trunc_metadata_inode(
if (err)
do_error(
_("truncation of metadata inode 0x%llx failed, err=%d\n"),
- (unsigned long long)ip->i_ino, err);
+ (unsigned long long)I_INO(ip), err);
}
/*
@@ -1008,7 +1008,7 @@ add_orphan_pptr(
sizeof(struct xfs_attr_sf_hdr), true);
if (error)
do_error(_("can't add attr fork to inode 0x%llx\n"),
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
}
error = -libxfs_parent_addname(tp, ppargs, orphanage_ip, xname, ip);
@@ -1202,7 +1202,7 @@ mv_orphanage(
}
if (xfs_has_parent(mp))
- add_parent_ptr(ino_p->i_ino, xname.name, orphanage_ip, false);
+ add_parent_ptr(I_INO(ino_p), xname.name, orphanage_ip, false);
libxfs_irele(ino_p);
libxfs_irele(orphanage_ip);
@@ -1303,10 +1303,10 @@ longform_dir2_rebuild(
* orphanage later (the inode number here needs to be valid
* for the libxfs_dir_init() call).
*/
- pip.i_ino = get_inode_parent(irec, ino_offset);
- if (pip.i_ino == NULLFSINO ||
- libxfs_dir_ino_validate(mp, pip.i_ino))
- pip.i_ino = mp->m_sb.sb_rootino;
+ VFS_I(&pip)->i_ino = get_inode_parent(irec, ino_offset);
+ if (I_INO(&pip) == NULLFSINO ||
+ libxfs_dir_ino_validate(mp, I_INO(&pip)))
+ VFS_I(&pip)->i_ino = mp->m_sb.sb_rootino;
nres = libxfs_remove_space_res(mp, 0);
error = -libxfs_trans_alloc(mp, &M_RES(mp)->tr_remove, nres, 0, 0, &tp);
@@ -1317,7 +1317,7 @@ longform_dir2_rebuild(
error = dir_binval(tp, ip, XFS_DATA_FORK);
if (error)
do_error(_("error %d invalidating directory %llu blocks\n"),
- error, (unsigned long long)ip->i_ino);
+ error, (unsigned long long)I_INO(ip));
if ((error = -libxfs_bmap_last_offset(ip, &lastblock, XFS_DATA_FORK)))
do_error(_("xfs_bmap_last_offset failed -- error - %d\n"),
@@ -1435,7 +1435,7 @@ dir2_kill_block(
args.trans = tp;
args.whichfork = XFS_DATA_FORK;
args.geo = mp->m_dir_geo;
- args.owner = ip->i_ino;
+ args.owner = I_INO(ip);
if (da_bno >= mp->m_dir_geo->leafblk && da_bno < mp->m_dir_geo->freeblk)
error = -libxfs_da_shrink_inode(&args, da_bno, bp);
else
@@ -1443,7 +1443,7 @@ dir2_kill_block(
xfs_dir2_da_to_db(mp->m_dir_geo, da_bno), bp);
if (error)
do_error(_("shrink_inode failed inode %" PRIu64 " block %u\n"),
- ip->i_ino, da_bno);
+ I_INO(ip), da_bno);
error = -libxfs_trans_commit(tp);
if (error)
do_error(
@@ -1479,14 +1479,14 @@ check_longform_ftype(
do_warn(
_("would fix ftype mismatch (%d/%d) in directory/child inode %" PRIu64 "/%" PRIu64 "\n"),
dir_ftype, ino_ftype,
- ip->i_ino, inum);
+ I_INO(ip), inum);
return;
}
do_warn(
_("fixing ftype mismatch (%d/%d) in directory/child inode %" PRIu64 "/%" PRIu64 "\n"),
dir_ftype, ino_ftype,
- ip->i_ino, inum);
+ I_INO(ip), inum);
libxfs_dir2_data_put_ftype(mp, dep, ino_ftype);
libxfs_dir2_data_log_entry(da, bp, dep);
dir_hash_update_ftype(hashtab, addr, ino_ftype);
@@ -1540,7 +1540,7 @@ longform_dir2_entry_check_data(
struct xfs_da_args da = {
.dp = ip,
.geo = mp->m_dir_geo,
- .owner = ip->i_ino,
+ .owner = I_INO(ip),
};
@@ -1633,11 +1633,11 @@ longform_dir2_entry_check_data(
if (junkit) {
do_warn(
_("empty data block %u in directory inode %" PRIu64 ": "),
- da_bno, ip->i_ino);
+ da_bno, I_INO(ip));
} else {
do_warn(_
("corrupt block %u in directory inode %" PRIu64 ": "),
- da_bno, ip->i_ino);
+ da_bno, I_INO(ip));
}
if (!no_modify) {
do_warn(_("junking block\n"));
@@ -1663,7 +1663,7 @@ longform_dir2_entry_check_data(
if (be32_to_cpu(d->magic) != wantmagic) {
do_warn(
_("bad directory block magic # %#x for directory inode %" PRIu64 " block %d: "),
- be32_to_cpu(d->magic), ip->i_ino, da_bno);
+ be32_to_cpu(d->magic), I_INO(ip), da_bno);
if (!no_modify) {
do_warn(_("fixing magic # to %#x\n"), wantmagic);
d->magic = cpu_to_be32(wantmagic);
@@ -1691,7 +1691,7 @@ longform_dir2_entry_check_data(
if (lastfree) {
do_warn(
_("directory inode %" PRIu64 " block %u has consecutive free entries: "),
- ip->i_ino, da_bno);
+ I_INO(ip), da_bno);
if (!no_modify) {
do_warn(_("joining together\n"));
@@ -1737,7 +1737,7 @@ longform_dir2_entry_check_data(
nbad++;
if (entry_junked(
_("entry \"%s\" in directory inode %" PRIu64 " points to non-existent inode %" PRIu64 ", "),
- fname, ip->i_ino, inum, NULLFSINO)) {
+ fname, I_INO(ip), inum, NULLFSINO)) {
dep->name[0] = '/';
libxfs_dir2_data_log_entry(&da, bp, dep);
}
@@ -1754,7 +1754,7 @@ longform_dir2_entry_check_data(
nbad++;
if (entry_junked(
_("entry \"%s\" in directory inode %" PRIu64 " points to free inode %" PRIu64 ", "),
- fname, ip->i_ino, inum, NULLFSINO)) {
+ fname, I_INO(ip), inum, NULLFSINO)) {
dep->name[0] = '/';
libxfs_dir2_data_log_entry(&da, bp, dep);
}
@@ -1770,7 +1770,7 @@ longform_dir2_entry_check_data(
nbad++;
if (entry_junked(
_("entry \"%s\" in regular dir %" PRIu64" points to a metadata inode %" PRIu64 ", "),
- fname, ip->i_ino, inum, NULLFSINO)) {
+ fname, I_INO(ip), inum, NULLFSINO)) {
dep->name[0] = '/';
libxfs_dir2_data_log_entry(&da, bp, dep);
}
@@ -1786,7 +1786,7 @@ longform_dir2_entry_check_data(
nbad++;
if (entry_junked(
_("entry \"%s\" in metadata dir %" PRIu64" points to a regular inode %" PRIu64 ", "),
- fname, ip->i_ino, inum, NULLFSINO)) {
+ fname, I_INO(ip), inum, NULLFSINO)) {
dep->name[0] = '/';
libxfs_dir2_data_log_entry(&da, bp, dep);
}
@@ -1804,7 +1804,7 @@ longform_dir2_entry_check_data(
nbad++;
if (entry_junked(
_("%s (ino %" PRIu64 ") in root (%" PRIu64 ") is not a directory, "),
- ORPHANAGE, inum, ip->i_ino, NULLFSINO)) {
+ ORPHANAGE, inum, I_INO(ip), NULLFSINO)) {
dep->name[0] = '/';
libxfs_dir2_data_log_entry(&da, bp, dep);
}
@@ -1827,7 +1827,7 @@ longform_dir2_entry_check_data(
nbad++;
if (entry_junked(
_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " already points to ino %" PRIu64 ", "),
- fname, inum, ip->i_ino, dup_inum)) {
+ fname, inum, I_INO(ip), dup_inum)) {
dep->name[0] = '/';
libxfs_dir2_data_log_entry(&da, bp, dep);
}
@@ -1858,7 +1858,7 @@ longform_dir2_entry_check_data(
nbad++;
if (entry_junked(
_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is not in the the first block, "), fname,
- inum, ip->i_ino, NULLFSINO)) {
+ inum, I_INO(ip), NULLFSINO)) {
dir_hash_junkit(hashtab, addr);
dep->name[0] = '/';
libxfs_dir2_data_log_entry(&da, bp, dep);
@@ -1881,7 +1881,7 @@ longform_dir2_entry_check_data(
* '..' is already accounted for or will be taken care
* of when directory is moved to orphanage.
*/
- if (ip->i_ino == inum) {
+ if (I_INO(ip) == inum) {
ASSERT(no_modify ||
(dep->name[0] == '.' && dep->namelen == 1));
add_inode_ref(current_irec, current_ino_offset);
@@ -1891,7 +1891,7 @@ longform_dir2_entry_check_data(
nbad++;
if (entry_junked(
_("entry \"%s\" in dir %" PRIu64 " is not the first entry, "),
- fname, inum, ip->i_ino, NULLFSINO)) {
+ fname, inum, I_INO(ip), NULLFSINO)) {
dir_hash_junkit(hashtab, addr);
dep->name[0] = '/';
libxfs_dir2_data_log_entry(&da, bp, dep);
@@ -1944,8 +1944,8 @@ longform_dir2_entry_check_data(
junkit = 1;
do_warn(
_("entry \"%s\" in dir %" PRIu64" points to an already connected directory inode %" PRIu64 "\n"),
- fname, ip->i_ino, inum);
- } else if (parent == ip->i_ino) {
+ fname, I_INO(ip), inum);
+ } else if (parent == I_INO(ip)) {
add_inode_reached(irec, ino_offset);
add_inode_ref(current_irec, current_ino_offset);
} else if (parent == NULLFSINO) {
@@ -1953,8 +1953,8 @@ _("entry \"%s\" in dir %" PRIu64" points to an already connected directory inode
so, set it as the parent and mark for rebuild */
do_warn(
_("entry \"%s\" in dir ino %" PRIu64 " doesn't have a .. entry, will set it in ino %" PRIu64 ".\n"),
- fname, ip->i_ino, inum);
- set_inode_parent(irec, ino_offset, ip->i_ino);
+ fname, I_INO(ip), inum);
+ set_inode_parent(irec, ino_offset, I_INO(ip));
add_inode_reached(irec, ino_offset);
add_inode_ref(current_irec, current_ino_offset);
add_dotdot_update(XFS_INO_TO_AGNO(mp, inum), irec,
@@ -1963,7 +1963,7 @@ _("entry \"%s\" in dir %" PRIu64" points to an already connected directory inode
junkit = 1;
do_warn(
_("entry \"%s\" in dir inode %" PRIu64 " inconsistent with .. value (%" PRIu64 ") in ino %" PRIu64 "\n"),
- fname, ip->i_ino, parent, inum);
+ fname, I_INO(ip), parent, inum);
}
if (junkit) {
if (inum == orphanage_ino)
@@ -2086,12 +2086,12 @@ longform_dir2_check_leaf(
if (error == EFSBADCRC || error == EFSCORRUPTED || fixit) {
do_warn(
_("leaf block %u for directory inode %" PRIu64 " bad CRC\n"),
- da_bno, ip->i_ino);
+ da_bno, I_INO(ip));
return 1;
} else if (error) {
do_error(
_("can't read block %u for directory inode %" PRIu64 ", error %d\n"),
- da_bno, ip->i_ino, error);
+ da_bno, I_INO(ip), error);
/* NOTREACHED */
}
@@ -2108,13 +2108,13 @@ longform_dir2_check_leaf(
(char *)&ents[leafhdr.count] > (char *)bestsp) {
do_warn(
_("leaf block %u for directory inode %" PRIu64 " bad header\n"),
- da_bno, ip->i_ino);
+ da_bno, I_INO(ip));
libxfs_buf_relse(bp);
return 1;
}
if (leafhdr.magic == XFS_DIR3_LEAF1_MAGIC) {
- error = check_da3_header(mp, bp, ip->i_ino);
+ error = check_da3_header(mp, bp, I_INO(ip));
if (error) {
libxfs_buf_relse(bp);
return error;
@@ -2134,7 +2134,7 @@ longform_dir2_check_leaf(
if (badtail) {
do_warn(
_("leaf block %u for directory inode %" PRIu64 " bad tail\n"),
- da_bno, ip->i_ino);
+ da_bno, I_INO(ip));
libxfs_buf_relse(bp);
return 1;
}
@@ -2195,7 +2195,7 @@ longform_dir2_check_node(
if (error) {
do_warn(
_("can't read leaf block %u for directory inode %" PRIu64 ", error %d\n"),
- da_bno, ip->i_ino, error);
+ da_bno, I_INO(ip), error);
return 1;
}
leaf = bp->b_addr;
@@ -2207,7 +2207,7 @@ longform_dir2_check_node(
leafhdr.magic == XFS_DA3_NODE_MAGIC)) {
do_warn(
_("unknown magic number %#x for block %u in directory inode %" PRIu64 "\n"),
- leafhdr.magic, da_bno, ip->i_ino);
+ leafhdr.magic, da_bno, I_INO(ip));
libxfs_buf_relse(bp);
return 1;
}
@@ -2215,7 +2215,7 @@ longform_dir2_check_node(
/* check v5 metadata */
if (leafhdr.magic == XFS_DIR3_LEAFN_MAGIC ||
leafhdr.magic == XFS_DA3_NODE_MAGIC) {
- error = check_da3_header(mp, bp, ip->i_ino);
+ error = check_da3_header(mp, bp, I_INO(ip));
if (error) {
libxfs_buf_relse(bp);
return error;
@@ -2238,7 +2238,7 @@ longform_dir2_check_node(
leafhdr.count < leafhdr.stale) {
do_warn(
_("leaf block %u for directory inode %" PRIu64 " bad header\n"),
- da_bno, ip->i_ino);
+ da_bno, I_INO(ip));
libxfs_buf_relse(bp);
return 1;
}
@@ -2270,7 +2270,7 @@ longform_dir2_check_node(
if (error) {
do_warn(
_("can't read freespace block %u for directory inode %" PRIu64 ", error %d\n"),
- da_bno, ip->i_ino, error);
+ da_bno, I_INO(ip), error);
return 1;
}
free = bp->b_addr;
@@ -2285,13 +2285,13 @@ longform_dir2_check_node(
freehdr.nvalid < freehdr.nused) {
do_warn(
_("free block %u for directory inode %" PRIu64 " bad header\n"),
- da_bno, ip->i_ino);
+ da_bno, I_INO(ip));
libxfs_buf_relse(bp);
return 1;
}
if (freehdr.magic == XFS_DIR3_FREE_MAGIC) {
- error = check_dir3_header(mp, bp, ip->i_ino);
+ error = check_dir3_header(mp, bp, I_INO(ip));
if (error) {
libxfs_buf_relse(bp);
return error;
@@ -2303,7 +2303,7 @@ longform_dir2_check_node(
be16_to_cpu(bests[i])) {
do_warn(
_("free block %u entry %i for directory ino %" PRIu64 " bad\n"),
- da_bno, i, ip->i_ino);
+ da_bno, i, I_INO(ip));
libxfs_buf_relse(bp);
return 1;
}
@@ -2313,7 +2313,7 @@ longform_dir2_check_node(
if (used != freehdr.nused) {
do_warn(
_("free block %u for directory inode %" PRIu64 " bad nused\n"),
- da_bno, ip->i_ino);
+ da_bno, I_INO(ip));
libxfs_buf_relse(bp);
return 1;
}
@@ -2324,7 +2324,7 @@ longform_dir2_check_node(
(freetab->ents[i].v != NULLDATAOFF)) {
do_warn(
_("missing freetab entry %u for directory inode %" PRIu64 "\n"),
- i, ip->i_ino);
+ i, I_INO(ip));
return 1;
}
}
@@ -2376,7 +2376,7 @@ longform_dir2_entry_check(
/* is this a block, leaf, or node directory? */
args.dp = ip;
args.geo = mp->m_dir_geo;
- args.owner = ip->i_ino;
+ args.owner = I_INO(ip);
fmt = libxfs_dir2_format(&args, &error);
/* check directory "data" blocks (ie. name/inode pairs) */
@@ -2734,7 +2734,7 @@ shortform_dir2_entry_check(
inode_is_meta(irec, ino_offset)) {
do_warn(
_("entry \"%s\" in regular dir %" PRIu64" points to a metadata inode %" PRIu64 ", "),
- fname, ip->i_ino, lino);
+ fname, I_INO(ip), lino);
next_sfep = shortform_dir2_junk(mp, sfp, sfep, lino,
&max_size, &i, &bytes_deleted,
ino_dirty);
@@ -2749,7 +2749,7 @@ shortform_dir2_entry_check(
!inode_is_meta(irec, ino_offset)) {
do_warn(
_("entry \"%s\" in metadata dir %" PRIu64" points to a regular inode %" PRIu64 ", "),
- fname, ip->i_ino, lino);
+ fname, I_INO(ip), lino);
next_sfep = shortform_dir2_junk(mp, sfp, sfep, lino,
&max_size, &i, &bytes_deleted,
ino_dirty);
@@ -3000,7 +3000,7 @@ fix_dotdot(
libxfs_trans_ijoin(tp, ip, 0);
- error = -libxfs_dir_createname(tp, ip, &xfs_name_dotdot, ip->i_ino,
+ error = -libxfs_dir_createname(tp, ip, &xfs_name_dotdot, I_INO(ip),
nres);
if (error)
do_error(
@@ -3133,7 +3133,7 @@ process_dir_inode(
do_error(
_("error %d fixing shortform directory %llu\n"),
error,
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
} else {
libxfs_trans_cancel(tp);
}
@@ -3189,7 +3189,7 @@ _("error %d fixing shortform directory %llu\n"),
libxfs_trans_ijoin(tp, ip, 0);
error = -libxfs_dir_createname(tp, ip, &xfs_name_dot,
- ip->i_ino, nres);
+ I_INO(ip), nres);
if (error)
do_error(
_("can't make \".\" entry in dir ino %" PRIu64 ", createname error %d\n"),
@@ -3436,9 +3436,9 @@ reset_rt_metadir_inodes(
}
if (mp->m_rtdirip) {
- mark_ino_inuse(mp, mp->m_rtdirip->i_ino, S_IFDIR,
- mp->m_metadirip->i_ino);
- mark_ino_metadata(mp, mp->m_rtdirip->i_ino);
+ mark_ino_inuse(mp, I_INO(mp->m_rtdirip), S_IFDIR,
+ I_INO(mp->m_metadirip));
+ mark_ino_metadata(mp, I_INO(mp->m_rtdirip));
}
}
@@ -3557,8 +3557,8 @@ _("Couldn't reset link count on %s quota inode, error %d\n"),
}
/* Mark the inode in use. */
- mark_ino_inuse(mp, ip->i_ino, S_IFREG, dp->i_ino);
- mark_ino_metadata(mp, ip->i_ino);
+ mark_ino_inuse(mp, I_INO(ip), S_IFREG, I_INO(dp));
+ mark_ino_metadata(mp, I_INO(ip));
libxfs_irele(ip);
return true;
bad:
@@ -3584,8 +3584,8 @@ reset_quota_metadir_inodes(
do_error(_("failed to create quota metadir (%d)\n"),
error);
- mark_ino_inuse(mp, dp->i_ino, S_IFDIR, mp->m_metadirip->i_ino);
- mark_ino_metadata(mp, dp->i_ino);
+ mark_ino_inuse(mp, I_INO(dp), S_IFDIR, I_INO(mp->m_metadirip));
+ mark_ino_metadata(mp, I_INO(dp));
ensure_quota_file(dp, XFS_DQTYPE_USER);
ensure_quota_file(dp, XFS_DQTYPE_GROUP);
diff --git a/repair/pptr.c b/repair/pptr.c
index 6a9e072b360d..4c5e77035989 100644
--- a/repair/pptr.c
+++ b/repair/pptr.c
@@ -372,7 +372,7 @@ add_parent_ptr(
};
struct ag_pptr ag_pptr = {
.child_agino = XFS_INO_TO_AGINO(mp, ino),
- .parent_ino = dp->i_ino,
+ .parent_ino = I_INO(dp),
.parent_gen = VFS_I(dp)->i_generation,
.namelen = dname.len,
};
@@ -407,7 +407,7 @@ add_parent_ptr(
dbg_printf(
_("%s: dp %llu gen 0x%x fname '%s' namehash 0x%x ino %llu namecookie 0x%llx\n"),
__func__,
- (unsigned long long)dp->i_ino,
+ (unsigned long long)I_INO(dp),
VFS_I(dp)->i_generation,
fname,
ag_pptr.namehash,
@@ -438,7 +438,7 @@ remove_garbage_xattrs(
.attr_filter = ga->attr_filter,
.namelen = ga->attrnamelen,
.valuelen = ga->attrvaluelen,
- .owner = ip->i_ino,
+ .owner = I_INO(ip),
.geo = ip->i_mount->m_attr_geo,
.whichfork = XFS_ATTR_FORK,
.op_flags = XFS_DA_OP_OKNOENT | XFS_DA_OP_LOGGED,
@@ -452,7 +452,7 @@ remove_garbage_xattrs(
do_error(
_("allocating %zu bytes to remove ino %llu garbage xattr failed: %s\n"),
desired,
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(errno));
bufsize = desired;
}
@@ -480,7 +480,7 @@ remove_garbage_xattrs(
if (error)
do_error(
_("removing ino %llu garbage xattr failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
}
@@ -515,7 +515,7 @@ record_garbage_xattr(
if (!fscan->have_garbage)
do_warn(
_("would delete garbage parent pointer extended attributes in ino %llu\n"),
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
fscan->have_garbage = true;
return;
}
@@ -526,7 +526,7 @@ record_garbage_xattr(
do_warn(
_("deleting garbage parent pointer extended attributes in ino %llu\n"),
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
error = -init_slab(&fscan->garbage_xattr_recs,
sizeof(struct garbage_xattr));
@@ -547,20 +547,20 @@ stuffit:
&garbage_xattr.attrname_cookie, name, namelen);
if (error)
do_error(_("storing ino %llu garbage xattr failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
error = -xfblob_store(fscan->garbage_xattr_names,
&garbage_xattr.attrvalue_cookie, value, valuelen);
if (error)
do_error(_("storing ino %llu garbage xattr failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
error = -slab_add(fscan->garbage_xattr_recs, &garbage_xattr);
if (error)
do_error(_("storing ino %llu garbage xattr rec failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
}
@@ -627,7 +627,7 @@ examine_xattr(
if (error)
do_error(
_("storing ino %llu parent pointer '%.*s' failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
namelen,
(const char *)name,
strerror(error));
@@ -635,7 +635,7 @@ examine_xattr(
error = -slab_add(fscan->file_pptr_recs, &file_pptr);
if (error)
do_error(_("storing ino %llu parent pointer rec failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
dbg_printf(
@@ -647,7 +647,7 @@ examine_xattr(
(const char *)name,
namelen,
file_pptr.namehash,
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr.name_cookie,
file_pptr.name_in_nameblobs);
@@ -690,7 +690,7 @@ add_file_pptr(
xfs_parent_rec_init(&pptr_rec, ag_pptr->parent_ino,
ag_pptr->parent_gen);
- return -libxfs_parent_set(ip, ip->i_ino, &xname, &pptr_rec, &scratch);
+ return -libxfs_parent_set(ip, I_INO(ip), &xname, &pptr_rec, &scratch);
}
/* Remove an on disk parent pointer from a file. */
@@ -709,7 +709,7 @@ remove_file_pptr(
xfs_parent_rec_init(&pptr_rec, file_pptr->parent_ino,
file_pptr->parent_gen);
- return -libxfs_parent_unset(ip, ip->i_ino, &xname, &pptr_rec, &scratch);
+ return -libxfs_parent_unset(ip, I_INO(ip), &xname, &pptr_rec, &scratch);
}
/* Remove all pptrs from @ip. */
@@ -724,17 +724,17 @@ clear_all_pptrs(
if (no_modify) {
do_warn(_("would delete unlinked ino %llu parent pointers\n"),
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
return;
}
do_warn(_("deleting unlinked ino %llu parent pointers\n"),
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
error = -init_slab_cursor(fscan->file_pptr_recs, NULL, &cur);
if (error)
do_error(_("init ino %llu pptr cursor failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
while ((file_pptr = pop_slab_cursor(cur)) != NULL) {
@@ -744,7 +744,7 @@ clear_all_pptrs(
if (error)
do_error(
_("loading incorrect name for ino %llu parent pointer (ino %llu gen 0x%x namecookie 0x%llx) failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
(unsigned long long)file_pptr->name_cookie,
@@ -754,7 +754,7 @@ clear_all_pptrs(
if (error)
do_error(
_("wiping ino %llu pptr (ino %llu gen 0x%x) failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
strerror(error));
@@ -778,7 +778,7 @@ add_missing_parent_ptr(
if (error)
do_error(
_("loading missing name for ino %llu parent pointer (ino %llu gen 0x%x namecookie 0x%llx) failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)ag_pptr->parent_ino,
ag_pptr->parent_gen,
(unsigned long long)ag_pptr->name_cookie,
@@ -787,7 +787,7 @@ add_missing_parent_ptr(
if (no_modify) {
do_warn(
_("would add missing ino %llu parent pointer (ino %llu gen 0x%x name '%.*s')\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)ag_pptr->parent_ino,
ag_pptr->parent_gen,
ag_pptr->namelen,
@@ -796,7 +796,7 @@ add_missing_parent_ptr(
} else {
do_warn(
_("adding missing ino %llu parent pointer (ino %llu gen 0x%x name '%.*s')\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)ag_pptr->parent_ino,
ag_pptr->parent_gen,
ag_pptr->namelen,
@@ -807,7 +807,7 @@ add_missing_parent_ptr(
if (error)
do_error(
_("adding ino %llu pptr (ino %llu gen 0x%x name '%.*s') failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)ag_pptr->parent_ino,
ag_pptr->parent_gen,
ag_pptr->namelen,
@@ -829,7 +829,7 @@ remove_incorrect_parent_ptr(
if (error)
do_error(
_("loading incorrect name for ino %llu parent pointer (ino %llu gen 0x%x namecookie 0x%llx) failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
(unsigned long long)file_pptr->name_cookie,
@@ -838,7 +838,7 @@ remove_incorrect_parent_ptr(
if (no_modify) {
do_warn(
_("would remove bad ino %llu parent pointer (ino %llu gen 0x%x name '%.*s')\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
file_pptr->namelen,
@@ -848,7 +848,7 @@ remove_incorrect_parent_ptr(
do_warn(
_("removing bad ino %llu parent pointer (ino %llu gen 0x%x name '%.*s')\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
file_pptr->namelen,
@@ -858,7 +858,7 @@ remove_incorrect_parent_ptr(
if (error)
do_error(
_("removing ino %llu pptr (ino %llu gen 0x%x name '%.*s') failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
file_pptr->namelen,
@@ -886,7 +886,7 @@ compare_parent_ptrs(
if (error)
do_error(
_("loading master-list name for ino %llu parent pointer (ino %llu gen 0x%x namecookie 0x%llx namelen %u) failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)ag_pptr->parent_ino,
ag_pptr->parent_gen,
(unsigned long long)ag_pptr->name_cookie,
@@ -897,7 +897,7 @@ compare_parent_ptrs(
if (error)
do_error(
_("loading file-list name for ino %llu parent pointer (ino %llu gen 0x%x namecookie 0x%llx namelen %u) failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
(unsigned long long)file_pptr->name_cookie,
@@ -919,7 +919,7 @@ reset:
if (no_modify) {
do_warn(
_("would update ino %llu parent pointer (ino %llu gen 0x%x name '%.*s') -> (ino %llu gen 0x%x name '%.*s')\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
file_pptr->namelen,
@@ -933,7 +933,7 @@ reset:
do_warn(
_("updating ino %llu parent pointer (ino %llu gen 0x%x name '%.*s') -> (ino %llu gen 0x%x name '%.*s')\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
file_pptr->namelen,
@@ -948,7 +948,7 @@ reset:
if (error)
do_error(
_("erasing ino %llu pptr (ino %llu gen 0x%x name '%.*s') failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
file_pptr->namelen,
@@ -964,7 +964,7 @@ _("erasing ino %llu pptr (ino %llu gen 0x%x name '%.*s') failed: %s\n"),
if (error && error != EEXIST)
do_error(
_("updating ino %llu pptr (ino %llu gen 0x%x name '%.*s') failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)ag_pptr->parent_ino,
ag_pptr->parent_gen,
ag_pptr->namelen,
@@ -1050,8 +1050,8 @@ crosscheck_file_parent_ptrs(
struct ag_pptr *ag_pptr, *prev_ag_pptr = NULL;
struct file_pptr *file_pptr;
struct xfs_mount *mp = ip->i_mount;
- xfs_agnumber_t agno = XFS_INO_TO_AGNO(mp, ip->i_ino);
- xfs_agino_t agino = XFS_INO_TO_AGINO(mp, ip->i_ino);
+ xfs_agnumber_t agno = XFS_INO_TO_AGNO(mp, I_INO(ip));
+ xfs_agino_t agino = XFS_INO_TO_AGINO(mp, I_INO(ip));
int error;
ag_pptr = peek_slab_cursor(fscan->ag_pptr_recs_cur);
@@ -1081,7 +1081,7 @@ crosscheck_file_parent_ptrs(
_("found dirent referring to ino %llu even though inobt scan moved on to ino %llu?!\n"),
(unsigned long long)XFS_AGINO_TO_INO(mp, agno,
ag_pptr->child_agino),
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
/* does not return */
}
@@ -1096,7 +1096,7 @@ crosscheck_file_parent_ptrs(
&fscan->file_pptr_recs_cur);
if (error)
do_error(_("init ino %llu parent pointer cursor failed: %s\n"),
- (unsigned long long)ip->i_ino, strerror(error));
+ (unsigned long long)I_INO(ip), strerror(error));
do {
int cmp_result;
@@ -1114,7 +1114,7 @@ crosscheck_file_parent_ptrs(
(unsigned long long)ag_pptr->parent_ino,
ag_pptr->parent_gen,
ag_pptr->namelen,
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)ag_pptr->name_cookie);
prev_ag_pptr = ag_pptr;
advance_slab_cursor(fscan->ag_pptr_recs_cur);
@@ -1131,7 +1131,7 @@ crosscheck_file_parent_ptrs(
(unsigned long long)ag_pptr->parent_ino,
ag_pptr->parent_gen,
ag_pptr->namelen,
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)ag_pptr->name_cookie);
if (file_pptr) {
@@ -1141,13 +1141,13 @@ crosscheck_file_parent_ptrs(
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
file_pptr->namelen,
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->name_cookie);
} else {
dbg_printf(
_("%s: ran out of parent pointers for ino %llu (file)\n"),
__func__,
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
}
cmp_result = cmp_file_to_ag_pptr(file_pptr, ag_pptr);
@@ -1188,7 +1188,7 @@ crosscheck_file_parent_ptrs(
(unsigned long long)file_pptr->parent_ino,
file_pptr->parent_gen,
file_pptr->namelen,
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
(unsigned long long)file_pptr->name_cookie);
/*
@@ -1223,11 +1223,11 @@ check_file_parent_ptrs(
libxfs_trans_cancel(tp);
if (error && !no_modify)
do_error(_("ino %llu parent pointer scan failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
if (error) {
do_warn(_("ino %llu parent pointer scan failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
goto out_free;
}
@@ -1361,20 +1361,20 @@ erase_pptrs(
&garbage_xattr.attrname_cookie, name, namelen);
if (error)
do_error(_("storing ino %llu garbage pptr failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
error = -xfblob_store(fscan->garbage_xattr_names,
&garbage_xattr.attrvalue_cookie, value, valuelen);
if (error)
do_error(_("storing ino %llu garbage pptr failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
error = -slab_add(fscan->garbage_xattr_recs, &garbage_xattr);
if (error)
do_error(_("storing ino %llu garbage pptr rec failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
return 0;
@@ -1399,7 +1399,7 @@ try_erase_parent_ptrs(
if (no_modify) {
do_warn(
_("would delete garbage parent pointers in metadata ino %llu\n"),
- (unsigned long long)ip->i_ino);
+ (unsigned long long)I_INO(ip));
return;
}
@@ -1423,7 +1423,7 @@ try_erase_parent_ptrs(
libxfs_trans_cancel(tp);
if (error)
do_warn(_("ino %llu garbage pptr collection failed: %s\n"),
- (unsigned long long)ip->i_ino,
+ (unsigned long long)I_INO(ip),
strerror(error));
remove_garbage_xattrs(ip, &fscan);
diff --git a/repair/quotacheck.c b/repair/quotacheck.c
index f4c0314177b0..fc7e3864654c 100644
--- a/repair/quotacheck.c
+++ b/repair/quotacheck.c
@@ -169,7 +169,7 @@ qc_count_rtblocks(
if (error) {
do_warn(
_("could not read ino %"PRIu64" extents, err=%d\n"),
- ip->i_ino, error);
+ I_INO(ip), error);
chkd_flags = 0;
return 0;
}
@@ -375,7 +375,7 @@ qc_walk_dquot_extent(
if (error) {
do_warn(
_("cannot read %s inode %"PRIu64", block %"PRIu64", disk block %"PRIu64", err=%d\n"),
- qflags_typestr(dquots->type), ip->i_ino,
+ qflags_typestr(dquots->type), I_INO(ip),
map->br_startoff + bno,
map->br_startblock + bno, error);
chkd_flags = 0;
@@ -454,7 +454,7 @@ quotacheck_verify(
if (error) {
do_warn(
_("could not read %s inode %"PRIu64" extents, err=%d\n"),
- qflags_typestr(type), ip->i_ino, error);
+ qflags_typestr(type), I_INO(ip), error);
chkd_flags = 0;
goto err;
}
@@ -659,7 +659,7 @@ mark_quota_inode(
if (error)
goto out_corrupt;
- set_quota_inode(type, ip->i_ino);
+ set_quota_inode(type, I_INO(ip));
libxfs_irele(ip);
return 0;
diff --git a/repair/rt.c b/repair/rt.c
index 781d8968446c..3e51c9b5eb4b 100644
--- a/repair/rt.c
+++ b/repair/rt.c
@@ -268,7 +268,7 @@ check_rtfile_contents(
if (xfs_has_rtgroups(mp)) {
struct xfs_rtbuf_blkinfo *hdr = bp->b_addr;
- if (hdr->rt_owner != cpu_to_be64(ip->i_ino)) {
+ if (hdr->rt_owner != cpu_to_be64(I_INO(ip))) {
do_warn(
_("corrupt owner in %s at dblock 0x%llx\n"),
filename, (unsigned long long)bno);
@@ -461,12 +461,12 @@ mark_rtginode(
goto out_corrupt;
if (xfs_has_rtgroups(rtg_mount(rtg))) {
- if (bitmap_test(rtg_inodes[type], ip->i_ino, 1)) {
+ if (bitmap_test(rtg_inodes[type], I_INO(ip), 1)) {
error = EFSCORRUPTED;
goto out_corrupt;
}
- error = bitmap_set(rtg_inodes[type], ip->i_ino, 1);
+ error = bitmap_set(rtg_inodes[type], I_INO(ip), 1);
if (error)
goto out_corrupt;
}
diff --git a/repair/rtrefcount_repair.c b/repair/rtrefcount_repair.c
index 228d080e5a5d..4aabf049a9ea 100644
--- a/repair/rtrefcount_repair.c
+++ b/repair/rtrefcount_repair.c
@@ -173,7 +173,7 @@ xrep_rtrefc_build_new_tree(
* Prepare to construct the new fork by initializing the new btree
* structure and creating a fake ifork in the ifakeroot structure.
*/
- libxfs_rmap_ino_bmbt_owner(&oinfo, sc->ip->i_ino, XFS_DATA_FORK);
+ libxfs_rmap_ino_bmbt_owner(&oinfo, I_INO(sc->ip), XFS_DATA_FORK);
bulkload_init_inode(&rr->new_fork_info, sc, XFS_DATA_FORK, &oinfo);
cur = libxfs_rtrefcountbt_init_cursor(NULL, rr->rtg);
libxfs_btree_stage_ifakeroot(cur, ifake);
diff --git a/repair/rtrmap_repair.c b/repair/rtrmap_repair.c
index 955db1738fe2..7228c9f2b98c 100644
--- a/repair/rtrmap_repair.c
+++ b/repair/rtrmap_repair.c
@@ -211,7 +211,7 @@ xrep_rtrmap_build_new_tree(
* Prepare to construct the new fork by initializing the new btree
* structure and creating a fake ifork in the ifakeroot structure.
*/
- libxfs_rmap_ino_bmbt_owner(&oinfo, sc->ip->i_ino, XFS_DATA_FORK);
+ libxfs_rmap_ino_bmbt_owner(&oinfo, I_INO(sc->ip), XFS_DATA_FORK);
bulkload_init_inode(&rr->new_fork_info, sc, XFS_DATA_FORK, &oinfo);
cur = libxfs_rtrmapbt_init_cursor(NULL, rr->rtg);
libxfs_btree_stage_ifakeroot(cur, ifake);
diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c
index dd758ebc577e..2ad1ee8b4aa7 100644
--- a/repair/xfs_repair.c
+++ b/repair/xfs_repair.c
@@ -670,7 +670,7 @@ check_metadir_inode(
/* If we changed the metadir inode, try reloading it. */
if (!mp->m_metadirip ||
- mp->m_metadirip->i_ino != mp->m_sb.sb_metadirino) {
+ I_INO(mp->m_metadirip) != mp->m_sb.sb_metadirino) {
if (mp->m_metadirip)
libxfs_irele(mp->m_metadirip);
--
2.55.0
next reply other threads:[~2026-08-24 11:45 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-24 10:39 Andrey Albershteyn [this message]
2026-08-24 10:39 ` [PATCH 01/21] xfs: Report case sensitivity in fileattr_get Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 02/21] xfs: fix exchmaps reservation limit check Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 03/21] xfs: add a XFS_INODE_TO_AGNO helper Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 04/21] xfs: add a XFS_INODE_TO_AGINO helper Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 05/21] xfs: add a XFS_INO_TO_FSB helper Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 06/21] xfs: add a xfs_rmap_inode_bmbt_owner Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 07/21] xfs: add a xfs_rmap_inode_owner helper Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 08/21] xfs: remove the i_ino field in struct xfs_inode Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 09/21] xfs: cleanup xfs_imap Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 10/21] xfs: remove im_len field in struct xfs_imap Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 11/21] xfs: massage xfs_imap_to_bp into xfs_read_icluster Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 12/21] xfs: store an agbno in struct xfs_imap Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 13/21] xfs: mark struct xfs_imap as __packed Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 14/21] xfs: fix pointer arithmetic error on 32-bit systems Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 15/21] xfs: pass back updated nb from xfs_growfs_compute_deltas Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 16/21] xfs: cleanup xfs_growfs_compute_deltas Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 17/21] xfs: fix memory leak in xfs_dqinode_metadir_create() Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 18/21] xfs: fix null pointer dereference in tracepoint Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 19/21] xfs: fix off-by-one in rtrefcount btree root level validation Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 20/21] xfs: fix exchange-range reflink flag clearing issue with INO1_WRITTEN Andrey Albershteyn
2026-08-24 10:40 ` [PATCH 21/21] xfs: check v5 superblock features early Andrey Albershteyn
2026-08-24 18:14 ` [PATCH 00/21] xfsprogs: libxfs sync for v7.2 Darrick J. Wong
2026-08-26 5:13 ` Christoph Hellwig
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=20260824104022.420566-1-aalbersh@kernel.org \
--to=aalbersh@kernel.org \
--cc=bestswngs@gmail.com \
--cc=brauner@kernel.org \
--cc=cem@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=cmaiolino@redhat.com \
--cc=dawei.feng@seu.edu.cn \
--cc=djwong@kernel.org \
--cc=gaoyingjie@uniontech.com \
--cc=hch@lst.de \
--cc=jiapenglin@tencent.com \
--cc=linux-xfs@vger.kernel.org \
--cc=roland.mainz@nrubsig.org \
--cc=xmei5@asu.edu \
/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