From: Andrey Albershteyn <aalbersh@kernel.org>
To: linux-xfs@vger.kernel.org, aalbersh@kernel.org, cem@kernel.org,
cmaiolino@redhat.com, djwong@kernel.org, hch@lst.de,
pchelkin@ispras.ru, pranav.tyagi03@gmail.com,
sandeen@redhat.com
Subject: [PATCH 0/12] xfsprogs: libxfs sync v6.17
Date: Wed, 8 Oct 2025 18:41:17 +0200 [thread overview]
Message-ID: <cover.1759941416.patch-series@thinky> (raw)
[-- Attachment #1: Type: text/plain, Size: 98 bytes --]
Hey all,
This is libxfs sync with v6.17.
Manual modifications diff in attachment.
--
- Andrey
[-- Attachment #2: libxfs-apply-manual-fixes.patch --]
[-- Type: text/x-diff, Size: 23595 bytes --]
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(
next reply other threads:[~2025-10-08 16:41 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-08 16:41 Andrey Albershteyn [this message]
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 ` [PATCH 0/12] xfsprogs: libxfs sync v6.17 Darrick J. Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1759941416.patch-series@thinky \
--to=aalbersh@kernel.org \
--cc=cem@kernel.org \
--cc=cmaiolino@redhat.com \
--cc=djwong@kernel.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.