From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 043AA3815CA for ; Mon, 24 Aug 2026 18:14:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787595276; cv=none; b=TmiEhSHvztDvKaxx5y0YjK+yup/Sf3fCkoO77qtHjUrcyh4kDCuU9BNJOZ9WC13sUmgLf/Noj1dqatEZuCUYoMKt8MMvzg/KoYftgFF5N50KSea/rphvCqe6CGjbMOQ7w4d+ZbMud1/HpOcgTwKrRjTvLyQu46Ma6/JjVts4AqM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787595276; c=relaxed/simple; bh=tfnYgQ9SPqri1SME9iZIPQKoM5OKskhxtsMrmMfj2jk=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=rlYHfsYwLhz2Qqa8KRouwZqbvk5LSfzwfHZO7VHQElC1h72uLc5HGCfbLqSWERoy+CKgeIirxmYM5JQIPRvKc9Zt7heVCzE4U0ch3DjXHG+8oLA0pjbHtrz5+vCmpNlT9M1eOJXZ8V73xDrKt/sfHsWMlMBegGPAC+/ZbCP1Tno= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FiJ5VM8Z; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FiJ5VM8Z" Received: by smtp.kernel.org (Postfix) with UTF8SMTPSA id 7AF921F000E9; Mon, 24 Aug 2026 18:14:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1787595272; bh=yZG7r3PIYPKrI1iqQNPtYYO8VVpRswurH+QRSnuwZ6E=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=FiJ5VM8Z/X6vA1S0/lBUGfzTJmVnyDU1Q6JKkzpEdtxtPPyu7G023HWr+EReB06m9 gIsEfvixHa/qGvVeBBSZ3lfKeyWxmUBfrZmpQWgTCAtQpN7d2pQPiZ8Gvqf68jt/1f kXF3+LUJolFUz9gu58Tm5/k5wWANW8o0/5aGwGOuFbBpQhKUaHR03LQb+QfWG/a6+D xdpqvt8a8EqAkRmJjUSYgHzFblV0Ryb6OySy0o/QqOhKnpsZ7d+BNl8hQ5Q1ecNiNB bN2Pz2FXd30fmNtgctQOxq6V3ImMfXF9GlHtmBjjrNOmUIjlvdDK0Hk7BPY5vTy1LE mdUJ9MB7CXKqg== Date: Mon, 24 Aug 2026 11:14:31 -0700 From: "Darrick J. Wong" To: Andrey Albershteyn Cc: linux-xfs@vger.kernel.org, bestswngs@gmail.com, brauner@kernel.org, cem@kernel.org, chuck.lever@oracle.com, cmaiolino@redhat.com, dawei.feng@seu.edu.cn, gaoyingjie@uniontech.com, hch@lst.de, jiapenglin@tencent.com, roland.mainz@nrubsig.org, xmei5@asu.edu Subject: Re: [PATCH 00/21] xfsprogs: libxfs sync for v7.2 Message-ID: <20260824181431.GN6072@frogsfrogsfrogs> References: <20260824104022.420566-1-aalbersh@kernel.org> Precedence: bulk X-Mailing-List: linux-xfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260824104022.420566-1-aalbersh@kernel.org> On Mon, Aug 24, 2026 at 12:39:58PM +0200, Andrey Albershteyn wrote: > 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)), XFS_INODE_TO_{AGNO,AGINO} ? > 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); Grabbing it here leaks the pag reference if iget fails; I put it right before the libxfs_read_icluster call. > 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))); Here too. > 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; I would put this after i_version for compactness, but that's mostly just me being nitpicky :) > 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); I did some cmp_init conversion for this file: https://lore.kernel.org/linux-xfs/178302226322.845537.14974268104031687429.stgit@frogsfrogsfrogs/ > } > > /* 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))); XFS_INODE_TO_AGNO > + 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)), XFS_INODE_TO_AGINO > 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)); XFS_INODE_TO_{AGNO,AGINO} > 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); > Otherwise looks fine to me. --D