Linux XFS filesystem development
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Andrey Albershteyn <aalbersh@kernel.org>
Cc: linux-xfs@vger.kernel.org, cem@kernel.org, cmaiolino@redhat.com,
	hch@lst.de, pchelkin@ispras.ru, pranav.tyagi03@gmail.com,
	sandeen@redhat.com
Subject: Re: [PATCH 0/12] xfsprogs: libxfs sync v6.17
Date: Wed, 8 Oct 2025 13:39:12 -0700	[thread overview]
Message-ID: <20251008203912.GB6188@frogsfrogsfrogs> (raw)
In-Reply-To: <cover.1759941416.patch-series@thinky>

On Wed, Oct 08, 2025 at 06:41:17PM +0200, Andrey Albershteyn wrote:
> Hey all,
> 
> This is libxfs sync with v6.17.
> 
> Manual modifications diff in attachment.

For everything except patches 3-4,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>

--D

> 
> -- 
> - Andrey

> diff --git a/db/attrset.c b/db/attrset.c
> index e3ffb75aa4..273c202956 100644
> --- a/db/attrset.c
> +++ b/db/attrset.c
> @@ -823,11 +823,7 @@
>  		return 0;
>  	}
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error) {
> -		dbprintf(_("failed to allocate empty transaction\n"));
> -		return 0;
> -	}
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	error = -libxfs_iget(mp, NULL, iocur_top->ino, 0, &ip);
>  	if (error) {
> diff --git a/db/dquot.c b/db/dquot.c
> index d2c76fd70b..c028d50e4c 100644
> --- a/db/dquot.c
> +++ b/db/dquot.c
> @@ -92,9 +92,7 @@
>  	xfs_ino_t		ret = NULLFSINO;
>  	int			error;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		return NULLFSINO;
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	if (xfs_has_metadir(mp)) {
>  		error = -libxfs_dqinode_load_parent(tp, &dp);
> diff --git a/db/fsmap.c b/db/fsmap.c
> index ddbe4e6a3d..a59a4d1230 100644
> --- a/db/fsmap.c
> +++ b/db/fsmap.c
> @@ -133,13 +133,7 @@
>  	struct xfs_btree_cur	*bt_cur;
>  	int			error;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error) {
> -		dbprintf(
> - _("Cannot alloc transaction to look up rtgroup %u rmap inode\n"),
> -				rtg_rgno(rtg));
> -		return error;
> -	}
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	error = -libxfs_rtginode_load_parent(tp);
>  	if (error) {
> diff --git a/db/info.c b/db/info.c
> index 6ad3e23832..9c233c9c0e 100644
> --- a/db/info.c
> +++ b/db/info.c
> @@ -174,13 +174,7 @@
>  	xfs_filblks_t		used = 0;
>  	int			error;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error) {
> -		dbprintf(
> - _("Cannot alloc transaction to look up rtgroup %u rmap inode\n"),
> -				rtg_rgno(rtg));
> -		return;
> -	}
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	error = -libxfs_rtginode_load_parent(tp);
>  	if (error) {
> diff --git a/db/metadump.c b/db/metadump.c
> index 34f2d61700..24eb99da17 100644
> --- a/db/metadump.c
> +++ b/db/metadump.c
> @@ -2989,7 +2989,7 @@
>  		if (metadump.obfuscate) {
>  			struct xfs_sb *sb = iocur_top->data;
>  			memset(sb->sb_fname, 'L',
> -			       min(strlen(sb->sb_fname), sizeof(sb->sb_fname)));
> +			       strnlen(sb->sb_fname, sizeof(sb->sb_fname)));
>  			iocur_top->need_crc = 1;
>  		}
>  		if (write_buf(iocur_top))
> diff --git a/db/namei.c b/db/namei.c
> index 1d9581c323..0a50ec87df 100644
> --- a/db/namei.c
> +++ b/db/namei.c
> @@ -94,9 +94,7 @@
>  	unsigned int		i;
>  	int			error;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		return error;
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	error = -libxfs_iget(mp, tp, ino, 0, &dp);
>  	if (error)
> diff --git a/db/rdump.c b/db/rdump.c
> index a50df4b8c7..599d0727e7 100644
> --- a/db/rdump.c
> +++ b/db/rdump.c
> @@ -926,15 +926,10 @@
>  		set_cur_inode(mp->m_sb.sb_rootino);
>  	}
>  
> -	ret = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (ret) {
> -		dbprintf(_("allocating state: %s\n"), strerror(ret));
> -		goto out_pbuf;
> -	}
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	ret = rdump_file(tp, iocur_top->ino, destdir, pbuf);
>  	libxfs_trans_cancel(tp);
> -out_pbuf:
>  	free(pbuf);
>  	return ret;
>  }
> diff --git a/include/platform_defs.h b/include/platform_defs.h
> index 74a00583eb..da966490b0 100644
> --- a/include/platform_defs.h
> +++ b/include/platform_defs.h
> @@ -294,4 +294,17 @@
>  	__a > __b ? (__a - __b) : (__b - __a);	\
>  })
>  
> +#define cmp_int(l, r)		((l > r) - (l < r))
> +
> +#if __has_attribute(__nonstring__)
> +# define __nonstring                    __attribute__((__nonstring__))
> +#else
> +# define __nonstring
> +#endif
> +
> +struct kvec {
> +	void *iov_base;
> +	size_t iov_len;
> +};
> +
>  #endif	/* __XFS_PLATFORM_DEFS_H__ */
> diff --git a/include/xfs_trans.h b/include/xfs_trans.h
> index 248064019a..4f4bfff350 100644
> --- a/include/xfs_trans.h
> +++ b/include/xfs_trans.h
> @@ -98,7 +98,7 @@
>  			struct xfs_trans **tpp, int *nospace_error);
>  int	libxfs_trans_alloc_rollable(struct xfs_mount *mp, uint blocks,
>  				    struct xfs_trans **tpp);
> -int	libxfs_trans_alloc_empty(struct xfs_mount *mp, struct xfs_trans **tpp);
> +struct xfs_trans *libxfs_trans_alloc_empty(struct xfs_mount *mp);
>  int	libxfs_trans_commit(struct xfs_trans *);
>  void	libxfs_trans_cancel(struct xfs_trans *);
>  int	libxfs_trans_reserve_more(struct xfs_trans *tp, uint blocks,
> diff --git a/libxfs/inode.c b/libxfs/inode.c
> index 0598a70ff5..1ce159fcc9 100644
> --- a/libxfs/inode.c
> +++ b/libxfs/inode.c
> @@ -258,9 +258,7 @@
>  	struct xfs_trans	*tp;
>  	int			error;
>  
> -	error = libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		return error;
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	error = libxfs_trans_metafile_iget(tp, ino, metafile_type, ipp);
>  	libxfs_trans_cancel(tp);
> diff --git a/libxfs/trans.c b/libxfs/trans.c
> index 5c896ba166..64457d1710 100644
> --- a/libxfs/trans.c
> +++ b/libxfs/trans.c
> @@ -247,18 +247,12 @@
>  	return error;
>  }
>  
> -int
> -libxfs_trans_alloc(
> +static inline struct xfs_trans *
> +__libxfs_trans_alloc(
>  	struct xfs_mount	*mp,
> -	struct xfs_trans_res	*resp,
> -	unsigned int		blocks,
> -	unsigned int		rtextents,
> -	unsigned int		flags,
> -	struct xfs_trans	**tpp)
> -
> +	uint			flags)
>  {
>  	struct xfs_trans	*tp;
> -	int			error;
>  
>  	tp = kmem_cache_zalloc(xfs_trans_cache, 0);
>  	tp->t_mountp = mp;
> @@ -266,6 +260,22 @@
>  	INIT_LIST_HEAD(&tp->t_dfops);
>  	tp->t_highest_agno = NULLAGNUMBER;
>  
> +	return tp;
> +}
> +
> +int
> +libxfs_trans_alloc(
> +	struct xfs_mount	*mp,
> +	struct xfs_trans_res	*resp,
> +	unsigned int		blocks,
> +	unsigned int		rtextents,
> +	unsigned int		flags,
> +	struct xfs_trans	**tpp)
> +
> +{
> +	struct xfs_trans	*tp = __libxfs_trans_alloc(mp, flags);
> +	int			error;
> +
>  	error = xfs_trans_reserve(tp, resp, blocks, rtextents);
>  	if (error) {
>  		xfs_trans_cancel(tp);
> @@ -290,14 +300,11 @@
>   * Note the zero-length reservation; this transaction MUST be cancelled
>   * without any dirty data.
>   */
> -int
> +struct xfs_trans *
>  libxfs_trans_alloc_empty(
> -	struct xfs_mount		*mp,
> -	struct xfs_trans		**tpp)
> +	struct xfs_mount		*mp)
>  {
> -	struct xfs_trans_res		resv = {0};
> -
> -	return xfs_trans_alloc(mp, &resv, 0, 0, XFS_TRANS_NO_WRITECOUNT, tpp);
> +	return __libxfs_trans_alloc(mp, XFS_TRANS_NO_WRITECOUNT);
>  }
>  
>  /*
> diff --git a/libxlog/xfs_log_recover.c b/libxlog/xfs_log_recover.c
> index 275593a3ac..7ef43956e9 100644
> --- a/libxlog/xfs_log_recover.c
> +++ b/libxlog/xfs_log_recover.c
> @@ -1034,13 +1034,13 @@
>  	item = list_entry(trans->r_itemq.prev, struct xlog_recover_item,
>  			  ri_list);
>  
> -	old_ptr = item->ri_buf[item->ri_cnt-1].i_addr;
> -	old_len = item->ri_buf[item->ri_cnt-1].i_len;
> +	old_ptr = item->ri_buf[item->ri_cnt-1].iov_base;
> +	old_len = item->ri_buf[item->ri_cnt-1].iov_len;
>  
>  	ptr = krealloc(old_ptr, len+old_len, 0);
>  	memcpy(&ptr[old_len], dp, len); /* d, s, l */
> -	item->ri_buf[item->ri_cnt-1].i_len += len;
> -	item->ri_buf[item->ri_cnt-1].i_addr = ptr;
> +	item->ri_buf[item->ri_cnt-1].iov_len += len;
> +	item->ri_buf[item->ri_cnt-1].iov_base = ptr;
>  	trace_xfs_log_recover_item_add_cont(log, trans, item, 0);
>  	return 0;
>  }
> @@ -1117,8 +1117,8 @@
>  	}
>  	ASSERT(item->ri_total > item->ri_cnt);
>  	/* Description region is ri_buf[0] */
> -	item->ri_buf[item->ri_cnt].i_addr = ptr;
> -	item->ri_buf[item->ri_cnt].i_len  = len;
> +	item->ri_buf[item->ri_cnt].iov_base = ptr;
> +	item->ri_buf[item->ri_cnt].iov_len  = len;
>  	item->ri_cnt++;
>  	trace_xfs_log_recover_item_add(log, trans, item, 0);
>  	return 0;
> @@ -1140,7 +1140,7 @@
>  		/* Free the regions in the item. */
>  		list_del(&item->ri_list);
>  		for (i = 0; i < item->ri_cnt; i++)
> -			kfree(item->ri_buf[i].i_addr);
> +			kfree(item->ri_buf[i].iov_base);
>  		/* Free the item itself */
>  		kfree(item->ri_buf);
>  		kfree(item);
> diff --git a/logprint/log_print_all.c b/logprint/log_print_all.c
> index 1498ef9724..39946f32d4 100644
> --- a/logprint/log_print_all.c
> +++ b/logprint/log_print_all.c
> @@ -78,7 +78,7 @@
>  	xfs_daddr_t		blkno;
>  	struct xfs_disk_dquot	*ddq;
>  
> -	f = (xfs_buf_log_format_t *)item->ri_buf[0].i_addr;
> +	f = (xfs_buf_log_format_t *)item->ri_buf[0].iov_base;
>  	printf("	");
>  	ASSERT(f->blf_type == XFS_LI_BUF);
>  	printf(_("BUF:  #regs:%d   start blkno:0x%llx   len:%d   bmap size:%d   flags:0x%x\n"),
> @@ -87,8 +87,8 @@
>  	num = f->blf_size-1;
>  	i = 1;
>  	while (num-- > 0) {
> -		p = item->ri_buf[i].i_addr;
> -		len = item->ri_buf[i].i_len;
> +		p = item->ri_buf[i].iov_base;
> +		len = item->ri_buf[i].iov_len;
>  		i++;
>  		if (blkno == 0) { /* super block */
>  			struct xfs_dsb  *dsb = (struct xfs_dsb *)p;
> @@ -185,7 +185,7 @@
>  {
>  	xfs_qoff_logformat_t	*qoff_f;
>  
> -	qoff_f = (xfs_qoff_logformat_t *)item->ri_buf[0].i_addr;
> +	qoff_f = (xfs_qoff_logformat_t *)item->ri_buf[0].iov_base;
>  
>  	ASSERT(qoff_f);
>  	printf(_("\tQUOTAOFF: #regs:%d   type:"), qoff_f->qf_size);
> @@ -205,10 +205,10 @@
>  	xfs_dq_logformat_t	*f;
>  	struct xfs_disk_dquot	*d;
>  
> -	f = (xfs_dq_logformat_t *)item->ri_buf[0].i_addr;
> +	f = (xfs_dq_logformat_t *)item->ri_buf[0].iov_base;
>  	ASSERT(f);
>  	ASSERT(f->qlf_len == 1);
> -	d = (struct xfs_disk_dquot *)item->ri_buf[1].i_addr;
> +	d = (struct xfs_disk_dquot *)item->ri_buf[1].iov_base;
>  	printf(_("\tDQUOT: #regs:%d  blkno:%lld  boffset:%u id: %d\n"),
>  	       f->qlf_size, (long long)f->qlf_blkno, f->qlf_boffset, f->qlf_id);
>  	if (!print_quota)
> @@ -288,21 +288,22 @@
>  	int			hasdata;
>  	int			hasattr;
>  
> -	ASSERT(item->ri_buf[0].i_len == sizeof(struct xfs_inode_log_format_32) ||
> -	       item->ri_buf[0].i_len == sizeof(struct xfs_inode_log_format));
> -	f = xfs_inode_item_format_convert(item->ri_buf[0].i_addr, item->ri_buf[0].i_len, &f_buf);
> +	ASSERT(item->ri_buf[0].iov_len == sizeof(struct xfs_inode_log_format_32) ||
> +		item->ri_buf[0].iov_len == sizeof(struct xfs_inode_log_format));
> +	f = xfs_inode_item_format_convert(item->ri_buf[0].iov_base,
> +					  item->ri_buf[0].iov_len, &f_buf);
>  
>  	printf(_("	INODE: #regs:%d   ino:0x%llx  flags:0x%x   dsize:%d\n"),
> -	       f->ilf_size, (unsigned long long)f->ilf_ino, f->ilf_fields,
> -	       f->ilf_dsize);
> +		f->ilf_size, (unsigned long long)f->ilf_ino, f->ilf_fields,
> +		f->ilf_dsize);
>  
>  	/* core inode comes 2nd */
>  	/* ASSERT len vs xfs_log_dinode_size() for V3 or V2 inodes */
> -	ASSERT(item->ri_buf[1].i_len ==
> +	ASSERT(item->ri_buf[1].iov_len ==
>  			offsetof(struct xfs_log_dinode, di_next_unlinked) ||
> -	       item->ri_buf[1].i_len == sizeof(struct xfs_log_dinode));
> +	       item->ri_buf[1].iov_len == sizeof(struct xfs_log_dinode));
>  	xlog_recover_print_inode_core((struct xfs_log_dinode *)
> -				      item->ri_buf[1].i_addr);
> +				      item->ri_buf[1].iov_base);
>  
>  	hasdata = (f->ilf_fields & XFS_ILOG_DFORK) != 0;
>  	hasattr = (f->ilf_fields & XFS_ILOG_AFORK) != 0;
> @@ -312,22 +313,22 @@
>  		ASSERT(f->ilf_size == 3 + hasattr);
>  		printf(_("		DATA FORK EXTENTS inode data:\n"));
>  		if (print_inode && print_data)
> -			xlog_recover_print_data(item->ri_buf[2].i_addr,
> -						item->ri_buf[2].i_len);
> +			xlog_recover_print_data(item->ri_buf[2].iov_base,
> +						item->ri_buf[2].iov_len);
>  		break;
>  	case XFS_ILOG_DBROOT:
>  		ASSERT(f->ilf_size == 3 + hasattr);
>  		printf(_("		DATA FORK BTREE inode data:\n"));
>  		if (print_inode && print_data)
> -			xlog_recover_print_data(item->ri_buf[2].i_addr,
> -						item->ri_buf[2].i_len);
> +			xlog_recover_print_data(item->ri_buf[2].iov_base,
> +						item->ri_buf[2].iov_len);
>  		break;
>  	case XFS_ILOG_DDATA:
>  		ASSERT(f->ilf_size == 3 + hasattr);
>  		printf(_("		DATA FORK LOCAL inode data:\n"));
>  		if (print_inode && print_data)
> -			xlog_recover_print_data(item->ri_buf[2].i_addr,
> -						item->ri_buf[2].i_len);
> +			xlog_recover_print_data(item->ri_buf[2].iov_base,
> +						item->ri_buf[2].iov_len);
>  		break;
>  	case XFS_ILOG_DEV:
>  		ASSERT(f->ilf_size == 2 + hasattr);
> @@ -353,24 +354,24 @@
>  			printf(_("		ATTR FORK EXTENTS inode data:\n"));
>  			if (print_inode && print_data)
>  				xlog_recover_print_data(
> -					item->ri_buf[attr_index].i_addr,
> -					item->ri_buf[attr_index].i_len);
> +					item->ri_buf[attr_index].iov_base,
> +					item->ri_buf[attr_index].iov_len);
>  			break;
>  		case XFS_ILOG_ABROOT:
>  			ASSERT(f->ilf_size == 3 + hasdata);
>  			printf(_("		ATTR FORK BTREE inode data:\n"));
>  			if (print_inode && print_data)
>  				xlog_recover_print_data(
> -					item->ri_buf[attr_index].i_addr,
> -					item->ri_buf[attr_index].i_len);
> +					item->ri_buf[attr_index].iov_base,
> +					item->ri_buf[attr_index].iov_len);
>  			break;
>  		case XFS_ILOG_ADATA:
>  			ASSERT(f->ilf_size == 3 + hasdata);
>  			printf(_("		ATTR FORK LOCAL inode data:\n"));
>  			if (print_inode && print_data)
>  				xlog_recover_print_data(
> -					item->ri_buf[attr_index].i_addr,
> -					item->ri_buf[attr_index].i_len);
> +					item->ri_buf[attr_index].iov_base,
> +					item->ri_buf[attr_index].iov_len);
>  			break;
>  		default:
>  			xlog_panic("%s: illegal inode log flag", __FUNCTION__);
> @@ -385,7 +386,7 @@
>  {
>  	struct xfs_icreate_log	*icl;
>  
> -	icl = (struct xfs_icreate_log *)item->ri_buf[0].i_addr;
> +	icl = (struct xfs_icreate_log *)item->ri_buf[0].iov_base;
>  
>  	printf(_("	ICR:  #ag: %d  agbno: 0x%x  len: %d\n"
>  		 "	      cnt: %d  isize: %d    gen: 0x%x\n"),
> @@ -549,8 +550,8 @@
>  */
>  	printf(_(": cnt:%d total:%d "), item->ri_cnt, item->ri_total);
>  	for (i=0; i<item->ri_cnt; i++) {
> -		printf(_("a:0x%lx len:%d "),
> -		       (long)item->ri_buf[i].i_addr, item->ri_buf[i].i_len);
> +		printf(_("a:0x%lx len:%zu "),
> +		       (long)item->ri_buf[i].iov_base, item->ri_buf[i].iov_len);
>  	}
>  	printf("\n");
>  	xlog_recover_print_logitem(item);
> diff --git a/logprint/log_redo.c b/logprint/log_redo.c
> index 89d7448342..f5bac21d35 100644
> --- a/logprint/log_redo.c
> +++ b/logprint/log_redo.c
> @@ -143,8 +143,8 @@
>  	int			i;
>  	uint			src_len, dst_len;
>  
> -	src_f = (xfs_efi_log_format_t *)item->ri_buf[0].i_addr;
> -	src_len = item->ri_buf[0].i_len;
> +	src_f = (xfs_efi_log_format_t *)item->ri_buf[0].iov_base;
> +	src_len = item->ri_buf[0].iov_len;
>  	/*
>  	 * An xfs_efi_log_format structure contains a variable length array
>  	 * as the last field.
> @@ -229,7 +229,7 @@
>  	const char		*item_name = "EFD?";
>  	xfs_efd_log_format_t	*f;
>  
> -	f = (xfs_efd_log_format_t *)item->ri_buf[0].i_addr;
> +	f = (xfs_efd_log_format_t *)item->ri_buf[0].iov_base;
>  
>  	switch (f->efd_type) {
>  	case XFS_LI_EFD:	item_name = "EFD"; break;
> @@ -355,8 +355,8 @@
>  	char				*src_f;
>  	uint				src_len;
>  
> -	src_f = item->ri_buf[0].i_addr;
> -	src_len = item->ri_buf[0].i_len;
> +	src_f = item->ri_buf[0].iov_base;
> +	src_len = item->ri_buf[0].iov_len;
>  
>  	xlog_print_trans_rui(&src_f, src_len, 0);
>  }
> @@ -406,7 +406,7 @@
>  {
>  	char				*f;
>  
> -	f = item->ri_buf[0].i_addr;
> +	f = item->ri_buf[0].iov_base;
>  	xlog_print_trans_rud(&f, sizeof(struct xfs_rud_log_format));
>  }
>  
> @@ -516,8 +516,8 @@
>  	char				*src_f;
>  	uint				src_len;
>  
> -	src_f = item->ri_buf[0].i_addr;
> -	src_len = item->ri_buf[0].i_len;
> +	src_f = item->ri_buf[0].iov_base;
> +	src_len = item->ri_buf[0].iov_len;
>  
>  	xlog_print_trans_cui(&src_f, src_len, 0);
>  }
> @@ -563,7 +563,7 @@
>  {
>  	char				*f;
>  
> -	f = item->ri_buf[0].i_addr;
> +	f = item->ri_buf[0].iov_base;
>  	xlog_print_trans_cud(&f, sizeof(struct xfs_cud_log_format));
>  }
>  
> @@ -667,8 +667,8 @@
>  	char				*src_f;
>  	uint				src_len;
>  
> -	src_f = item->ri_buf[0].i_addr;
> -	src_len = item->ri_buf[0].i_len;
> +	src_f = item->ri_buf[0].iov_base;
> +	src_len = item->ri_buf[0].iov_len;
>  
>  	xlog_print_trans_bui(&src_f, src_len, 0);
>  }
> @@ -707,7 +707,7 @@
>  {
>  	char				*f;
>  
> -	f = item->ri_buf[0].i_addr;
> +	f = item->ri_buf[0].iov_base;
>  	xlog_print_trans_bud(&f, sizeof(struct xfs_bud_log_format));
>  }
>  
> @@ -954,8 +954,8 @@
>  	unsigned int			new_value_len = 0;
>  	int				region = 0;
>  
> -	src_f = (struct xfs_attri_log_format *)item->ri_buf[0].i_addr;
> -	src_len = item->ri_buf[region].i_len;
> +	src_f = (struct xfs_attri_log_format *)item->ri_buf[0].iov_base;
> +	src_len = item->ri_buf[region].iov_len;
>  
>  	/*
>  	 * An xfs_attri_log_format structure contains a attribute name and
> @@ -996,17 +996,17 @@
>  	if (name_len > 0) {
>  		region++;
>  		printf(_("ATTRI:  name len:%u\n"), name_len);
> -		print_or_dump((char *)item->ri_buf[region].i_addr,
> +		print_or_dump((char *)item->ri_buf[region].iov_base,
>  			       name_len);
> -		name_ptr = item->ri_buf[region].i_addr;
> +		name_ptr = item->ri_buf[region].iov_base;
>  	}
>  
>  	if (new_name_len > 0) {
>  		region++;
>  		printf(_("ATTRI:  newname len:%u\n"), new_name_len);
> -		print_or_dump((char *)item->ri_buf[region].i_addr,
> +		print_or_dump((char *)item->ri_buf[region].iov_base,
>  			       new_name_len);
> -		new_name_ptr = item->ri_buf[region].i_addr;
> +		new_name_ptr = item->ri_buf[region].iov_base;
>  	}
>  
>  	if (value_len > 0) {
> @@ -1014,8 +1014,8 @@
>  
>  		region++;
>  		printf(_("ATTRI:  value len:%u\n"), value_len);
> -		print_or_dump((char *)item->ri_buf[region].i_addr, len);
> -		value_ptr = item->ri_buf[region].i_addr;
> +		print_or_dump((char *)item->ri_buf[region].iov_base, len);
> +		value_ptr = item->ri_buf[region].iov_base;
>  	}
>  
>  	if (new_value_len > 0) {
> @@ -1023,8 +1023,8 @@
>  
>  		region++;
>  		printf(_("ATTRI:  newvalue len:%u\n"), new_value_len);
> -		print_or_dump((char *)item->ri_buf[region].i_addr, len);
> -		new_value_ptr = item->ri_buf[region].i_addr;
> +		print_or_dump((char *)item->ri_buf[region].iov_base, len);
> +		new_value_ptr = item->ri_buf[region].iov_base;
>  	}
>  
>  	if (src_f->alfi_attr_filter & XFS_ATTR_PARENT)
> @@ -1065,7 +1065,7 @@
>  {
>  	struct xfs_attrd_log_format	*f;
>  
> -	f = (struct xfs_attrd_log_format *)item->ri_buf[0].i_addr;
> +	f = (struct xfs_attrd_log_format *)item->ri_buf[0].iov_base;
>  
>  	printf(_("	ATTRD:  #regs: %d	id: 0x%llx\n"),
>  		f->alfd_size,
> @@ -1156,8 +1156,8 @@
>  	char				*src_f;
>  	uint				src_len;
>  
> -	src_f = item->ri_buf[0].i_addr;
> -	src_len = item->ri_buf[0].i_len;
> +	src_f = item->ri_buf[0].iov_base;
> +	src_len = item->ri_buf[0].iov_len;
>  
>  	xlog_print_trans_xmi(&src_f, src_len, 0);
>  }
> @@ -1196,6 +1196,6 @@
>  {
>  	char				*f;
>  
> -	f = item->ri_buf[0].i_addr;
> +	f = item->ri_buf[0].iov_base;
>  	xlog_print_trans_xmd(&f, sizeof(struct xfs_xmd_log_format));
>  }
> diff --git a/repair/phase2.c b/repair/phase2.c
> index e249980527..fc96f9c422 100644
> --- a/repair/phase2.c
> +++ b/repair/phase2.c
> @@ -296,11 +296,7 @@
>  		 * there while we try to make a per-AG reservation with the new
>  		 * geometry.
>  		 */
> -		error = -libxfs_trans_alloc_empty(mp, &tp);
> -		if (error)
> -			do_error(
> -	_("Cannot reserve resources for upgrade check, err=%d.\n"),
> -					error);
> +		tp = libxfs_trans_alloc_empty(mp);
>  
>  		error = -libxfs_ialloc_read_agi(pag, tp, 0, &agi_bp);
>  		if (error)
> diff --git a/repair/pptr.c b/repair/pptr.c
> index ac0a9c618b..6a9e072b36 100644
> --- a/repair/pptr.c
> +++ b/repair/pptr.c
> @@ -1217,7 +1217,7 @@
>  	fscan->have_garbage = false;
>  	fscan->nr_file_pptrs = 0;
>  
> -	libxfs_trans_alloc_empty(ip->i_mount, &tp);
> +	tp = libxfs_trans_alloc_empty(ip->i_mount);
>  	error = xattr_walk(tp, ip, examine_xattr, fscan);
>  	if (tp)
>  		libxfs_trans_cancel(tp);
> @@ -1417,7 +1417,7 @@
>  		do_error("init garbage pptr names failed: %s\n",
>  				strerror(error));
>  
> -	libxfs_trans_alloc_empty(ip->i_mount, &tp);
> +	tp = libxfs_trans_alloc_empty(ip->i_mount);
>  	error = xattr_walk(tp, ip, erase_pptrs, &fscan);
>  	if (tp)
>  		libxfs_trans_cancel(tp);
> diff --git a/repair/quotacheck.c b/repair/quotacheck.c
> index df6cde2d58..f4c0314177 100644
> --- a/repair/quotacheck.c
> +++ b/repair/quotacheck.c
> @@ -437,9 +437,7 @@
>  	if (!dquots || !chkd_flags)
>  		return;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		do_error(_("could not alloc transaction to open quota file\n"));
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	ino = get_quota_inode(type);
>  	error = -libxfs_trans_metafile_iget(tp, ino, metafile_type, &ip);
> @@ -679,9 +677,7 @@
>  	struct xfs_inode	*dp = NULL;
>  	int			error, err2;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		goto out;
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	error = -libxfs_dqinode_load_parent(tp, &dp);
>  	if (error)
> @@ -698,7 +694,6 @@
>  	libxfs_irele(dp);
>  out_cancel:
>  	libxfs_trans_cancel(tp);
> -out:
>  	if (error) {
>  		switch (error) {
>  		case EFSCORRUPTED:
> diff --git a/repair/rcbag.c b/repair/rcbag.c
> index 21732b65c6..d7addbf58e 100644
> --- a/repair/rcbag.c
> +++ b/repair/rcbag.c
> @@ -95,9 +95,7 @@
>  	int				has;
>  	int				error;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		do_error(_("allocating tx for refcount bag update\n"));
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	cur = rcbagbt_mem_cursor(mp, tp, &bag->xfbtree);
>  	error = rcbagbt_lookup_eq(cur, rmap, &has);
> @@ -217,9 +215,7 @@
>  	int			has;
>  	int			error;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		do_error(_("allocating tx for refcount bag update\n"));
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	/* go to the right edge of the tree */
>  	cur = rcbagbt_mem_cursor(mp, tp, &bag->xfbtree);
> diff --git a/repair/rcbag_btree.c b/repair/rcbag_btree.c
> index bed7c7a8f6..fc5f69c4d2 100644
> --- a/repair/rcbag_btree.c
> +++ b/repair/rcbag_btree.c
> @@ -46,8 +46,8 @@
>  	bag_rec->rbg_refcount = bag_irec->rbg_refcount;
>  }
>  
> -STATIC int64_t
> -rcbagbt_key_diff(
> +STATIC int
> +rcbagbt_cmp_key_with_cur(
>  	struct xfs_btree_cur		*cur,
>  	const union xfs_btree_key	*key)
>  {
> @@ -72,8 +72,8 @@
>  	return 0;
>  }
>  
> -STATIC int64_t
> -rcbagbt_diff_two_keys(
> +STATIC int
> +rcbagbt_cmp_two_keys(
>  	struct xfs_btree_cur		*cur,
>  	const union xfs_btree_key	*k1,
>  	const union xfs_btree_key	*k2,
> @@ -220,9 +220,9 @@
>  	.init_key_from_rec	= rcbagbt_init_key_from_rec,
>  	.init_rec_from_cur	= rcbagbt_init_rec_from_cur,
>  	.init_ptr_from_cur	= xfbtree_init_ptr_from_cur,
> -	.key_diff		= rcbagbt_key_diff,
> +	.cmp_key_with_cur	= rcbagbt_cmp_key_with_cur,
>  	.buf_ops		= &rcbagbt_mem_buf_ops,
> -	.diff_two_keys		= rcbagbt_diff_two_keys,
> +	.cmp_two_keys		= rcbagbt_cmp_two_keys,
>  	.keys_inorder		= rcbagbt_keys_inorder,
>  	.recs_inorder		= rcbagbt_recs_inorder,
>  };
> diff --git a/repair/rmap.c b/repair/rmap.c
> index 97510dd875..e89bd32d63 100644
> --- a/repair/rmap.c
> +++ b/repair/rmap.c
> @@ -323,9 +323,7 @@
>  	int			error;
>  
>  	xfbt = &rmaps_for_group(isrt, agno)->ar_xfbtree;
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		do_error(_("allocating tx for in-memory rmap update\n"));
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	error = rmap_init_mem_cursor(mp, tp, isrt, agno, &rmcur);
>  	if (error)
> diff --git a/repair/rt.c b/repair/rt.c
> index 1ac2bf6fc4..781d896844 100644
> --- a/repair/rt.c
> +++ b/repair/rt.c
> @@ -301,10 +301,7 @@
>  	if (rtg->rtg_inodes[type])
>  		goto out_rtg;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		goto out_rtg;
> -
> +	tp = libxfs_trans_alloc_empty(mp);
>  
>  	error = -libxfs_rtginode_load(rtg, type, tp);
>  	if (error)
> @@ -497,9 +494,7 @@
>  	int			error, err2;
>  	int			i;
>  
> -	error = -libxfs_trans_alloc_empty(mp, &tp);
> -	if (error)
> -		goto out;
> +	tp = libxfs_trans_alloc_empty(mp);
>  	if (xfs_has_rtgroups(mp) && mp->m_sb.sb_rgcount > 0) {
>  		error = -libxfs_rtginode_load_parent(tp);
>  		if (error)
> @@ -516,7 +511,6 @@
>  
>  out_cancel:
>  	libxfs_trans_cancel(tp);
> -out:
>  	if (xfs_has_rtgroups(mp) && error) {
>  		/*
>  		 * Old xfs_repair didn't complain if rtbitmaps didn't load
> diff --git a/scrub/inodes.c b/scrub/inodes.c
> index 2f3c87be79..4ed7cd9963 100644
> --- a/scrub/inodes.c
> +++ b/scrub/inodes.c
> @@ -197,8 +197,6 @@
>  	return seen_mask;
>  }
>  
> -#define cmp_int(l, r)		((l > r) - (l < r))
> -
>  /* Compare two bulkstat records by inumber. */
>  static int
>  compare_bstat(


      parent reply	other threads:[~2025-10-08 20:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-08 16:41 [PATCH 0/12] xfsprogs: libxfs sync v6.17 Andrey Albershteyn
2025-10-08 16:53 ` [PATCH 1/11] [PATCH] xfs: rename diff_two_keys routines Fedor Pchelkin
2025-10-08 16:54 ` [PATCH 2/11] [PATCH] xfs: rename key_diff routines Fedor Pchelkin
2025-10-08 16:55 ` [PATCH 3/11] [PATCH] xfs: refactor cmp_two_keys routines to take advantage of cmp_int() Fedor Pchelkin
2025-10-08 20:36   ` Darrick J. Wong
2025-10-08 16:55 ` [PATCH 4/11] [PATCH] xfs: refactor cmp_key_with_cur " Fedor Pchelkin
2025-10-08 20:36   ` Darrick J. Wong
2025-10-08 16:55 ` [PATCH 5/11] [PATCH] xfs: use a proper variable name and type for storing a comparison result Fedor Pchelkin
2025-10-08 16:55 ` [PATCH 6/11] [PATCH] xfs: refactor xfs_btree_diff_two_ptrs() to take advantage of cmp_int() Fedor Pchelkin
2025-10-08 16:56 ` [PATCH 7/11] [PATCH] xfs: return the allocated transaction from xfs_trans_alloc_empty Christoph Hellwig
2025-10-08 16:56 ` [PATCH 8/11] [PATCH] xfs: improve the xg_active_ref check in xfs_group_free Christoph Hellwig
2025-10-08 16:56 ` [PATCH 9/11] [PATCH] fs/xfs: replace strncpy with memtostr_pad() Pranav Tyagi
2025-10-08 16:56 ` [PATCH 10/11] [PATCH] xfs: don't use a xfs_log_iovec for ri_buf in log recovery Christoph Hellwig
2025-10-08 16:57 ` [PATCH 11/11] [PATCH] xfs: do not propagate ENODATA disk errors into xattr code Eric Sandeen
2025-10-08 20:39 ` Darrick J. Wong [this message]

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=20251008203912.GB6188@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=aalbersh@kernel.org \
    --cc=cem@kernel.org \
    --cc=cmaiolino@redhat.com \
    --cc=hch@lst.de \
    --cc=linux-xfs@vger.kernel.org \
    --cc=pchelkin@ispras.ru \
    --cc=pranav.tyagi03@gmail.com \
    --cc=sandeen@redhat.com \
    /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