All of lore.kernel.org
 help / color / mirror / Atom feed
From: Khem Raj <raj.khem@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: Khem Raj <raj.khem@gmail.com>
Subject: [PATCH 3/6] btrfs-tools: Do not use 64bit functions for largefile support
Date: Thu,  1 Dec 2022 11:02:45 -0800	[thread overview]
Message-ID: <20221201190248.175753-3-raj.khem@gmail.com> (raw)
In-Reply-To: <20221201190248.175753-1-raj.khem@gmail.com>

Using -D_FILE_OFFSET_BITS=64 already makes the normal function behave
like 64bit variants. Moreover it makes them portable across libc

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...-ftruncate-stat-instead-of-64bit-equ.patch | 903 ++++++++++++++++++
 .../btrfs-tools/btrfs-tools_6.0.1.bb          |   1 +
 2 files changed, 904 insertions(+)
 create mode 100644 meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Use-pread-pwrite-ftruncate-stat-instead-of-64bit-equ.patch

diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Use-pread-pwrite-ftruncate-stat-instead-of-64bit-equ.patch b/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Use-pread-pwrite-ftruncate-stat-instead-of-64bit-equ.patch
new file mode 100644
index 0000000000..9a8e24e457
--- /dev/null
+++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Use-pread-pwrite-ftruncate-stat-instead-of-64bit-equ.patch
@@ -0,0 +1,903 @@
+From 37425f422e46003ed623f8e6387bed1aa5778b96 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 11 Nov 2022 11:26:05 -0800
+Subject: [PATCH] Use pread/pwrite/ftruncate/stat instead of 64bit equivalents
+
+64bit functions are aliases to original functions when largefile feature
+is enabled via autoconf or right macro is passed on compiler cmdline
+
+-D_FILE_OFFSET_BITS=64
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmds/rescue-chunk-recover.c |   4 +-
+ image/main.c                |  14 +--
+ kernel-shared/zoned.c       |   6 +-
+ kernel-shared/zoned.h       |   4 +-
+ mkfs/main.c                 |   4 +-
+ mkfs/rootdir.c              |  10 +-
+ tests/fsstress.c            | 192 ++++++++++++++++++------------------
+ tests/fssum.c               |   8 +-
+ 8 files changed, 121 insertions(+), 121 deletions(-)
+
+--- a/cmds/rescue-chunk-recover.c
++++ b/cmds/rescue-chunk-recover.c
+@@ -755,7 +755,7 @@ static int scan_one_device(void *dev_sca
+ 		if (is_super_block_address(bytenr))
+ 			bytenr += rc->sectorsize;
+ 
+-		if (pread64(fd, buf->data, rc->nodesize, bytenr) <
++		if (pread(fd, buf->data, rc->nodesize, bytenr) <
+ 		    rc->nodesize)
+ 			break;
+ 
+@@ -1875,7 +1875,7 @@ static int check_one_csum(int fd, u64 st
+ 	data = malloc(len);
+ 	if (!data)
+ 		return -1;
+-	ret = pread64(fd, data, len, start);
++	ret = pread(fd, data, len, start);
+ 	if (ret < 0 || ret != len) {
+ 		ret = -1;
+ 		goto out;
+--- a/image/main.c
++++ b/image/main.c
+@@ -691,7 +691,7 @@ static int flush_pending(struct metadump
+ 		if (start == BTRFS_SUPER_INFO_OFFSET) {
+ 			int fd = get_dev_fd(md->root);
+ 
+-			ret = pread64(fd, async->buffer, size, start);
++			ret = pread(fd, async->buffer, size, start);
+ 			if (ret < size) {
+ 				free(async->buffer);
+ 				free(async);
+@@ -1366,7 +1366,7 @@ static void write_backup_supers(int fd,
+ 			break;
+ 		btrfs_set_super_bytenr(super, bytenr);
+ 		csum_block(buf, BTRFS_SUPER_INFO_SIZE);
+-		ret = pwrite64(fd, buf, BTRFS_SUPER_INFO_SIZE, bytenr);
++		ret = pwrite(fd, buf, BTRFS_SUPER_INFO_SIZE, bytenr);
+ 		if (ret < BTRFS_SUPER_INFO_SIZE) {
+ 			if (ret < 0)
+ 				error(
+@@ -1487,12 +1487,12 @@ static int restore_one_work(struct mdres
+ 				else
+ 					bytenr = logical;
+ 
+-				ret = pwrite64(outfd, buffer + offset, chunk_size, bytenr);
++				ret = pwrite(outfd, buffer + offset, chunk_size, bytenr);
+ 				if (ret != chunk_size)
+ 					goto write_error;
+ 
+ 				if (physical_dup)
+-					ret = pwrite64(outfd, buffer + offset,
++					ret = pwrite(outfd, buffer + offset,
+ 						       chunk_size, physical_dup);
+ 				if (ret != chunk_size)
+ 					goto write_error;
+@@ -2454,7 +2454,7 @@ static int fixup_device_size(struct btrf
+ 	}
+ 	if (S_ISREG(buf.st_mode)) {
+ 		/* Don't forget to enlarge the real file */
+-		ret = ftruncate64(out_fd, dev_size);
++		ret = ftruncate(out_fd, dev_size);
+ 		if (ret < 0) {
+ 			error("failed to enlarge result image: %m");
+ 			return -errno;
+@@ -2913,7 +2913,7 @@ static int restore_metadump(const char *
+ 			goto out;
+ 		}
+ 		if (S_ISREG(st.st_mode) && st.st_size < dev_size) {
+-			ret = ftruncate64(fileno(out), dev_size);
++			ret = ftruncate(fileno(out), dev_size);
+ 			if (ret < 0) {
+ 				error(
+ 		"failed to enlarge result image file from %llu to %llu: %m",
+@@ -3010,7 +3010,7 @@ static int update_disk_super_on_device(s
+ 	memcpy(dev_item->fsid, fs_uuid, BTRFS_UUID_SIZE);
+ 	csum_block((u8 *)&disk_super, BTRFS_SUPER_INFO_SIZE);
+ 
+-	ret = pwrite64(fp, &disk_super, BTRFS_SUPER_INFO_SIZE, BTRFS_SUPER_INFO_OFFSET);
++	ret = pwrite(fp, &disk_super, BTRFS_SUPER_INFO_SIZE, BTRFS_SUPER_INFO_OFFSET);
+ 	if (ret != BTRFS_SUPER_INFO_SIZE) {
+ 		if (ret < 0) {
+ 			errno = ret;
+--- a/kernel-shared/zoned.c
++++ b/kernel-shared/zoned.c
+@@ -194,7 +194,7 @@ static int sb_write_pointer(int fd, stru
+ 			bytenr = ((zones[i].start + zones[i].len)
+ 				   << SECTOR_SHIFT) - BTRFS_SUPER_INFO_SIZE;
+ 
+-			ret = pread64(fd, buf[i], BTRFS_SUPER_INFO_SIZE, bytenr);
++			ret = pread(fd, buf[i], BTRFS_SUPER_INFO_SIZE, bytenr);
+ 			if (ret != BTRFS_SUPER_INFO_SIZE)
+ 				return -EIO;
+ 			super[i] = (struct btrfs_super_block *)&buf[i];
+@@ -515,8 +515,8 @@ size_t btrfs_sb_io(int fd, void *buf, of
+ 	/* We can call pread/pwrite if 'fd' is non-zoned device/file */
+ 	if (zone_size_sector == 0) {
+ 		if (rw == READ)
+-			return pread64(fd, buf, count, offset);
+-		return pwrite64(fd, buf, count, offset);
++			return pread(fd, buf, count, offset);
++		return pwrite(fd, buf, count, offset);
+ 	}
+ 
+ 	ASSERT(IS_ALIGNED(zone_size_sector, sb_size_sector));
+--- a/kernel-shared/zoned.h
++++ b/kernel-shared/zoned.h
+@@ -150,9 +150,9 @@ int btrfs_wipe_temporary_sb(struct btrfs
+ #else
+ 
+ #define sbread(fd, buf, offset) \
+-	pread64(fd, buf, BTRFS_SUPER_INFO_SIZE, offset)
++	pread(fd, buf, BTRFS_SUPER_INFO_SIZE, offset)
+ #define sbwrite(fd, buf, offset) \
+-	pwrite64(fd, buf, BTRFS_SUPER_INFO_SIZE, offset)
++	pwrite(fd, buf, BTRFS_SUPER_INFO_SIZE, offset)
+ 
+ static inline int btrfs_reset_dev_zone(int fd, struct blk_zone *zone)
+ {
+--- a/mkfs/main.c
++++ b/mkfs/main.c
+@@ -453,14 +453,14 @@ static int zero_output_file(int out_fd,
+ 	/* Only zero out the first 1M */
+ 	loop_num = SZ_1M / SZ_4K;
+ 	for (i = 0; i < loop_num; i++) {
+-		written = pwrite64(out_fd, buf, SZ_4K, location);
++		written = pwrite(out_fd, buf, SZ_4K, location);
+ 		if (written != SZ_4K)
+ 			ret = -EIO;
+ 		location += SZ_4K;
+ 	}
+ 
+ 	/* Then enlarge the file to size */
+-	written = pwrite64(out_fd, buf, 1, size - 1);
++	written = pwrite(out_fd, buf, 1, size - 1);
+ 	if (written < 1)
+ 		ret = -EIO;
+ 	return ret;
+--- a/mkfs/rootdir.c
++++ b/mkfs/rootdir.c
+@@ -340,7 +340,7 @@ static int add_file_items(struct btrfs_t
+ 			goto end;
+ 		}
+ 
+-		ret_read = pread64(fd, buffer, st->st_size, bytes_read);
++		ret_read = pread(fd, buffer, st->st_size, bytes_read);
+ 		if (ret_read == -1) {
+ 			error("cannot read %s at offset %llu length %llu: %m",
+ 				path_name, bytes_read, (unsigned long long)st->st_size);
+@@ -386,7 +386,7 @@ again:
+ 
+ 		memset(eb->data, 0, sectorsize);
+ 
+-		ret_read = pread64(fd, eb->data, sectorsize, file_pos +
++		ret_read = pread(fd, eb->data, sectorsize, file_pos +
+ 				   bytes_read);
+ 		if (ret_read == -1) {
+ 			error("cannot read %s at offset %llu length %u: %m",
+@@ -929,7 +929,7 @@ int btrfs_mkfs_shrink_fs(struct btrfs_fs
+ 	u64 new_size;
+ 	struct btrfs_device *device;
+ 	struct list_head *cur;
+-	struct stat64 file_stat;
++	struct stat file_stat;
+ 	int nr_devs = 0;
+ 	int ret;
+ 
+@@ -963,14 +963,14 @@ int btrfs_mkfs_shrink_fs(struct btrfs_fs
+ 		*new_size_ret = new_size;
+ 
+ 	if (shrink_file_size) {
+-		ret = fstat64(device->fd, &file_stat);
++		ret = fstat(device->fd, &file_stat);
+ 		if (ret < 0) {
+ 			error("failed to stat devid %llu: %m", device->devid);
+ 			return ret;
+ 		}
+ 		if (!S_ISREG(file_stat.st_mode))
+ 			return ret;
+-		ret = ftruncate64(device->fd, new_size);
++		ret = ftruncate(device->fd, new_size);
+ 		if (ret < 0) {
+ 			error("failed to truncate device file of devid %llu: %m",
+ 				device->devid);
+--- a/tests/fsstress.c
++++ b/tests/fsstress.c
+@@ -458,7 +458,7 @@ int	get_fname(int, long, pathname_t *, f
+ void	init_pathname(pathname_t *);
+ int	lchown_path(pathname_t *, uid_t, gid_t);
+ int	link_path(pathname_t *, pathname_t *);
+-int	lstat64_path(pathname_t *, struct stat64 *);
++int	lstat_path(pathname_t *, struct stat *);
+ void	make_freq_table(void);
+ int	mkdir_path(pathname_t *, mode_t);
+ int	mknod_path(pathname_t *, mode_t, dev_t);
+@@ -472,9 +472,9 @@ int	rename_path(pathname_t *, pathname_t
+ int	rmdir_path(pathname_t *);
+ void	separate_pathname(pathname_t *, char *, pathname_t *);
+ void	show_ops(int, char *);
+-int	stat64_path(pathname_t *, struct stat64 *);
++int	stat_path(pathname_t *, struct stat *);
+ int	symlink_path(const char *, pathname_t *);
+-int	truncate64_path(pathname_t *, off64_t);
++int	truncate_path(pathname_t *, off64_t);
+ int	unlink_path(pathname_t *);
+ void	usage(void);
+ void	write_freq(void);
+@@ -998,12 +998,12 @@ void
+ check_cwd(void)
+ {
+ #ifdef DEBUG
+-	struct stat64	statbuf;
++	struct stat	statbuf;
+ 	int ret;
+ 
+-	ret = stat64(".", &statbuf);
++	ret = stat(".", &statbuf);
+ 	if (ret != 0) {
+-		fprintf(stderr, "fsstress: check_cwd stat64() returned %d with errno: %d (%m)\n",
++		fprintf(stderr, "fsstress: check_cwd stat() returned %d with errno: %d (%m)\n",
+ 			ret, errno);
+ 		goto out;
+ 	}
+@@ -1171,7 +1171,7 @@ again:
+ void
+ doproc(void)
+ {
+-	struct stat64	statbuf;
++	struct stat	statbuf;
+ 	char		buf[10];
+ 	char		cmd[64];
+ 	opnum_t		opno;
+@@ -1182,7 +1182,7 @@ doproc(void)
+ 	dividend = (operations + execute_freq) / (execute_freq + 1);
+ 	sprintf(buf, "p%x", procid);
+ 	(void)mkdir(buf, 0777);
+-	if (chdir(buf) < 0 || stat64(".", &statbuf) < 0) {
++	if (chdir(buf) < 0 || stat(".", &statbuf) < 0) {
+ 		perror(buf);
+ 		_exit(1);
+ 	}
+@@ -1214,7 +1214,7 @@ doproc(void)
+ 		 * the forced shutdown happened.
+ 		 */
+ 		if (errtag != 0 && opno % 100 == 0)  {
+-			rval = stat64(".", &statbuf);
++			rval = stat(".", &statbuf);
+ 			if (rval == EIO)  {
+ 				fprintf(stderr, "Detected EIO\n");
+ 				goto errout;
+@@ -1537,18 +1537,18 @@ link_path(pathname_t *name1, pathname_t
+ }
+ 
+ int
+-lstat64_path(pathname_t *name, struct stat64 *sbuf)
++lstat_path(pathname_t *name, struct stat *sbuf)
+ {
+ 	char		buf[NAME_MAX + 1];
+ 	pathname_t	newname;
+ 	int		rval;
+ 
+-	rval = lstat64(name->path, sbuf);
++	rval = lstat(name->path, sbuf);
+ 	if (rval >= 0 || errno != ENAMETOOLONG)
+ 		return rval;
+ 	separate_pathname(name, buf, &newname);
+ 	if (chdir(buf) == 0) {
+-		rval = lstat64_path(&newname, sbuf);
++		rval = lstat_path(&newname, sbuf);
+ 		assert(chdir("..") == 0);
+ 	}
+ 	free_pathname(&newname);
+@@ -1870,18 +1870,18 @@ show_ops(int flag, char *lead_str)
+ }
+ 
+ int
+-stat64_path(pathname_t *name, struct stat64 *sbuf)
++stat_path(pathname_t *name, struct stat *sbuf)
+ {
+ 	char		buf[NAME_MAX + 1];
+ 	pathname_t	newname;
+ 	int		rval;
+ 
+-	rval = stat64(name->path, sbuf);
++	rval = stat(name->path, sbuf);
+ 	if (rval >= 0 || errno != ENAMETOOLONG)
+ 		return rval;
+ 	separate_pathname(name, buf, &newname);
+ 	if (chdir(buf) == 0) {
+-		rval = stat64_path(&newname, sbuf);
++		rval = stat_path(&newname, sbuf);
+ 		assert(chdir("..") == 0);
+ 	}
+ 	free_pathname(&newname);
+@@ -1913,18 +1913,18 @@ symlink_path(const char *name1, pathname
+ }
+ 
+ int
+-truncate64_path(pathname_t *name, off64_t length)
++truncate_path(pathname_t *name, off64_t length)
+ {
+ 	char		buf[NAME_MAX + 1];
+ 	pathname_t	newname;
+ 	int		rval;
+ 
+-	rval = truncate64(name->path, length);
++	rval = truncate(name->path, length);
+ 	if (rval >= 0 || errno != ENAMETOOLONG)
+ 		return rval;
+ 	separate_pathname(name, buf, &newname);
+ 	if (chdir(buf) == 0) {
+-		rval = truncate64_path(&newname, length);
++		rval = truncate_path(&newname, length);
+ 		assert(chdir("..") == 0);
+ 	}
+ 	free_pathname(&newname);
+@@ -2026,7 +2026,7 @@ non_btrfs_freq(const char *path)
+ 		ops[btrfs_ops[i]].freq = 0;
+ }
+ 
+-void inode_info(char *str, size_t sz, struct stat64 *s, int verbose)
++void inode_info(char *str, size_t sz, struct stat *s, int verbose)
+ {
+ 	if (verbose)
+ 		snprintf(str, sz, "[%ld %ld %d %d %lld %lld]",
+@@ -2101,7 +2101,7 @@ allocsp_f(opnum_t opno, long r)
+ 	struct xfs_flock64	fl;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 
+@@ -2122,9 +2122,9 @@ allocsp_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: allocsp - fstat64 %s failed %d\n",
++			printf("%d/%lld: allocsp - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -2160,7 +2160,7 @@ do_aio_rw(opnum_t opno, long r, int flag
+ 	size_t		len;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 	char		*dio_env;
+@@ -2184,9 +2184,9 @@ do_aio_rw(opnum_t opno, long r, int flag
+ 			       procid, opno, f.path, e);
+ 		goto aio_out;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: do_aio_rw - fstat64 %s failed %d\n",
++			printf("%d/%lld: do_aio_rw - fstat %s failed %d\n",
+ 			       procid, opno, f.path, errno);
+ 		goto aio_out;
+ 	}
+@@ -2278,7 +2278,7 @@ do_uring_rw(opnum_t opno, long r, int fl
+ 	size_t		len;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 	struct io_uring_sqe	*sqe;
+@@ -2304,9 +2304,9 @@ do_uring_rw(opnum_t opno, long r, int fl
+ 			       procid, opno, f.path, e);
+ 		goto uring_out;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: do_uring_rw - fstat64 %s failed %d\n",
++			printf("%d/%lld: do_uring_rw - fstat %s failed %d\n",
+ 			       procid, opno, f.path, errno);
+ 		goto uring_out;
+ 	}
+@@ -2522,7 +2522,7 @@ bulkstat1_f(opnum_t opno, long r)
+ 	int		fd;
+ 	int		good;
+ 	__u64		ino;
+-	struct stat64	s;
++	struct stat	s;
+ 	struct xfs_bstat	t;
+ 	int		v;
+ 	struct xfs_fsop_bulkreq bsr;
+@@ -2534,7 +2534,7 @@ bulkstat1_f(opnum_t opno, long r)
+ 		init_pathname(&f);
+ 		if (!get_fname(FT_ANYm, r, &f, NULL, NULL, &v))
+ 			append_pathname(&f, ".");
+-		ino = stat64_path(&f, &s) < 0 ? (ino64_t)r : s.st_ino;
++		ino = stat_path(&f, &s) < 0 ? (ino64_t)r : s.st_ino;
+ 		check_cwd();
+ 		free_pathname(&f);
+ 	} else {
+@@ -2605,8 +2605,8 @@ clonerange_f(
+ 	struct file_clone_range	fcr;
+ 	struct pathname		fpath1;
+ 	struct pathname		fpath2;
+-	struct stat64		stat1;
+-	struct stat64		stat2;
++	struct stat		stat1;
++	struct stat		stat2;
+ 	char			inoinfo1[1024];
+ 	char			inoinfo2[1024];
+ 	off64_t			lr;
+@@ -2660,17 +2660,17 @@ clonerange_f(
+ 	}
+ 
+ 	/* Get file stats */
+-	if (fstat64(fd1, &stat1) < 0) {
++	if (fstat(fd1, &stat1) < 0) {
+ 		if (v1)
+-			printf("%d/%lld: clonerange read - fstat64 %s failed %d\n",
++			printf("%d/%lld: clonerange read - fstat %s failed %d\n",
+ 				procid, opno, fpath1.path, errno);
+ 		goto out_fd2;
+ 	}
+ 	inode_info(inoinfo1, sizeof(inoinfo1), &stat1, v1);
+ 
+-	if (fstat64(fd2, &stat2) < 0) {
++	if (fstat(fd2, &stat2) < 0) {
+ 		if (v2)
+-			printf("%d/%lld: clonerange write - fstat64 %s failed %d\n",
++			printf("%d/%lld: clonerange write - fstat %s failed %d\n",
+ 				procid, opno, fpath2.path, errno);
+ 		goto out_fd2;
+ 	}
+@@ -2743,8 +2743,8 @@ copyrange_f(
+ #ifdef HAVE_COPY_FILE_RANGE
+ 	struct pathname		fpath1;
+ 	struct pathname		fpath2;
+-	struct stat64		stat1;
+-	struct stat64		stat2;
++	struct stat		stat1;
++	struct stat		stat2;
+ 	char			inoinfo1[1024];
+ 	char			inoinfo2[1024];
+ 	loff_t			lr;
+@@ -2802,17 +2802,17 @@ copyrange_f(
+ 	}
+ 
+ 	/* Get file stats */
+-	if (fstat64(fd1, &stat1) < 0) {
++	if (fstat(fd1, &stat1) < 0) {
+ 		if (v1)
+-			printf("%d/%lld: copyrange read - fstat64 %s failed %d\n",
++			printf("%d/%lld: copyrange read - fstat %s failed %d\n",
+ 				procid, opno, fpath1.path, errno);
+ 		goto out_fd2;
+ 	}
+ 	inode_info(inoinfo1, sizeof(inoinfo1), &stat1, v1);
+ 
+-	if (fstat64(fd2, &stat2) < 0) {
++	if (fstat(fd2, &stat2) < 0) {
+ 		if (v2)
+-			printf("%d/%lld: copyrange write - fstat64 %s failed %d\n",
++			printf("%d/%lld: copyrange write - fstat %s failed %d\n",
+ 				procid, opno, fpath2.path, errno);
+ 		goto out_fd2;
+ 	}
+@@ -2900,7 +2900,7 @@ deduperange_f(
+ #define INFO_SZ			1024
+ 	struct file_dedupe_range *fdr;
+ 	struct pathname		*fpath;
+-	struct stat64		*stat;
++	struct stat		*stat;
+ 	char			*info;
+ 	off64_t			*off;
+ 	int			*v;
+@@ -2938,7 +2938,7 @@ deduperange_f(
+ 		goto out_fdr;
+ 	}
+ 
+-	stat = calloc(nr, sizeof(struct stat64));
++	stat = calloc(nr, sizeof(struct stat));
+ 	if (!stat) {
+ 		printf("%d/%lld: line %d error %d\n",
+ 			procid, opno, __LINE__, errno);
+@@ -3017,9 +3017,9 @@ deduperange_f(
+ 	}
+ 
+ 	/* Get file stats */
+-	if (fstat64(fd[0], &stat[0]) < 0) {
++	if (fstat(fd[0], &stat[0]) < 0) {
+ 		if (v[0])
+-			printf("%d/%lld: deduperange read - fstat64 %s failed %d\n",
++			printf("%d/%lld: deduperange read - fstat %s failed %d\n",
+ 				procid, opno, fpath[0].path, errno);
+ 		goto out_fds;
+ 	}
+@@ -3027,9 +3027,9 @@ deduperange_f(
+ 	inode_info(&info[0], INFO_SZ, &stat[0], v[0]);
+ 
+ 	for (i = 1; i < nr; i++) {
+-		if (fstat64(fd[i], &stat[i]) < 0) {
++		if (fstat(fd[i], &stat[i]) < 0) {
+ 			if (v[i])
+-				printf("%d/%lld: deduperange write - fstat64 %s failed %d\n",
++				printf("%d/%lld: deduperange write - fstat %s failed %d\n",
+ 					procid, opno, fpath[i].path, errno);
+ 			goto out_fds;
+ 		}
+@@ -3179,8 +3179,8 @@ splice_f(opnum_t opno, long r)
+ {
+ 	struct pathname		fpath1;
+ 	struct pathname		fpath2;
+-	struct stat64		stat1;
+-	struct stat64		stat2;
++	struct stat		stat1;
++	struct stat		stat2;
+ 	char			inoinfo1[1024];
+ 	char			inoinfo2[1024];
+ 	loff_t			lr;
+@@ -3237,17 +3237,17 @@ splice_f(opnum_t opno, long r)
+ 	}
+ 
+ 	/* Get file stats */
+-	if (fstat64(fd1, &stat1) < 0) {
++	if (fstat(fd1, &stat1) < 0) {
+ 		if (v1)
+-			printf("%d/%lld: splice read - fstat64 %s failed %d\n",
++			printf("%d/%lld: splice read - fstat %s failed %d\n",
+ 				procid, opno, fpath1.path, errno);
+ 		goto out_fd2;
+ 	}
+ 	inode_info(inoinfo1, sizeof(inoinfo1), &stat1, v1);
+ 
+-	if (fstat64(fd2, &stat2) < 0) {
++	if (fstat(fd2, &stat2) < 0) {
+ 		if (v2)
+-			printf("%d/%lld: splice write - fstat64 %s failed %d\n",
++			printf("%d/%lld: splice write - fstat %s failed %d\n",
+ 				procid, opno, fpath2.path, errno);
+ 		goto out_fd2;
+ 	}
+@@ -3432,7 +3432,7 @@ dread_f(opnum_t opno, long r)
+ 	size_t		len;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 	char		*dio_env;
+@@ -3454,9 +3454,9 @@ dread_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: dread - fstat64 %s failed %d\n",
++			printf("%d/%lld: dread - fstat %s failed %d\n",
+ 			       procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -3522,7 +3522,7 @@ dwrite_f(opnum_t opno, long r)
+ 	size_t		len;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 	char		*dio_env;
+@@ -3544,9 +3544,9 @@ dwrite_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: dwrite - fstat64 %s failed %d\n",
++			printf("%d/%lld: dwrite - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -3620,7 +3620,7 @@ do_fallocate(opnum_t opno, long r, int m
+ 	int64_t		lr;
+ 	off64_t		off;
+ 	off64_t		len;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 
+@@ -3640,9 +3640,9 @@ do_fallocate(opnum_t opno, long r, int m
+ 		return;
+ 	}
+ 	check_cwd();
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: do_fallocate - fstat64 %s failed %d\n",
++			printf("%d/%lld: do_fallocate - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -3734,7 +3734,7 @@ fiemap_f(opnum_t opno, long r)
+ 	int		fd;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 	int blocks_to_map;
+@@ -3757,9 +3757,9 @@ fiemap_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: fiemap - fstat64 %s failed %d\n",
++			printf("%d/%lld: fiemap - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -3807,7 +3807,7 @@ freesp_f(opnum_t opno, long r)
+ 	struct xfs_flock64	fl;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 
+@@ -3828,9 +3828,9 @@ freesp_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: freesp - fstat64 %s failed %d\n",
++			printf("%d/%lld: freesp - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -4226,7 +4226,7 @@ do_mmap(opnum_t opno, long r, int prot)
+ 	int64_t		lr;
+ 	off64_t		off;
+ 	int		flags;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 	sigjmp_buf	sigbus_jmpbuf;
+@@ -4248,9 +4248,9 @@ do_mmap(opnum_t opno, long r, int prot)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: do_mmap - fstat64 %s failed %d\n",
++			printf("%d/%lld: do_mmap - fstat %s failed %d\n",
+ 			       procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -4370,7 +4370,7 @@ read_f(opnum_t opno, long r)
+ 	size_t		len;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 
+@@ -4391,9 +4391,9 @@ read_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: read - fstat64 %s failed %d\n",
++			printf("%d/%lld: read - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -4454,7 +4454,7 @@ readv_f(opnum_t opno, long r)
+ 	size_t		len;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 	struct iovec	*iov = NULL;
+@@ -4480,9 +4480,9 @@ readv_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: readv - fstat64 %s failed %d\n",
++			printf("%d/%lld: readv - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -4739,7 +4739,7 @@ resvsp_f(opnum_t opno, long r)
+ 	struct xfs_flock64	fl;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 
+@@ -4760,9 +4760,9 @@ resvsp_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: resvsp - fstat64 %s failed %d\n",
++			printf("%d/%lld: resvsp - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -4971,7 +4971,7 @@ stat_f(opnum_t opno, long r)
+ {
+ 	int		e;
+ 	pathname_t	f;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 
+ 	init_pathname(&f);
+@@ -4981,7 +4981,7 @@ stat_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	e = lstat64_path(&f, &stb) < 0 ? errno : 0;
++	e = lstat_path(&f, &stb) < 0 ? errno : 0;
+ 	check_cwd();
+ 	if (v)
+ 		printf("%d/%lld: stat %s %d\n", procid, opno, f.path, e);
+@@ -5133,7 +5133,7 @@ truncate_f(opnum_t opno, long r)
+ 	pathname_t	f;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 
+@@ -5144,11 +5144,11 @@ truncate_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	e = stat64_path(&f, &stb) < 0 ? errno : 0;
++	e = stat_path(&f, &stb) < 0 ? errno : 0;
+ 	check_cwd();
+ 	if (e > 0) {
+ 		if (v)
+-			printf("%d/%lld: truncate - stat64 %s failed %d\n",
++			printf("%d/%lld: truncate - stat %s failed %d\n",
+ 				procid, opno, f.path, e);
+ 		free_pathname(&f);
+ 		return;
+@@ -5157,7 +5157,7 @@ truncate_f(opnum_t opno, long r)
+ 	lr = ((int64_t)random() << 32) + random();
+ 	off = (off64_t)(lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE));
+ 	off %= maxfsize;
+-	e = truncate64_path(&f, off) < 0 ? errno : 0;
++	e = truncate_path(&f, off) < 0 ? errno : 0;
+ 	check_cwd();
+ 	if (v)
+ 		printf("%d/%lld: truncate %s%s %lld %d\n", procid, opno, f.path,
+@@ -5209,7 +5209,7 @@ unresvsp_f(opnum_t opno, long r)
+ 	struct xfs_flock64	fl;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 
+@@ -5230,9 +5230,9 @@ unresvsp_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: unresvsp - fstat64 %s failed %d\n",
++			printf("%d/%lld: unresvsp - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -5281,7 +5281,7 @@ write_f(opnum_t opno, long r)
+ 	size_t		len;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 
+@@ -5302,9 +5302,9 @@ write_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: write - fstat64 %s failed %d\n",
++			printf("%d/%lld: write - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+@@ -5337,7 +5337,7 @@ writev_f(opnum_t opno, long r)
+ 	size_t		len;
+ 	int64_t		lr;
+ 	off64_t		off;
+-	struct stat64	stb;
++	struct stat	stb;
+ 	int		v;
+ 	char		st[1024];
+ 	struct iovec	*iov = NULL;
+@@ -5363,9 +5363,9 @@ writev_f(opnum_t opno, long r)
+ 		free_pathname(&f);
+ 		return;
+ 	}
+-	if (fstat64(fd, &stb) < 0) {
++	if (fstat(fd, &stb) < 0) {
+ 		if (v)
+-			printf("%d/%lld: writev - fstat64 %s failed %d\n",
++			printf("%d/%lld: writev - fstat %s failed %d\n",
+ 				procid, opno, f.path, errno);
+ 		free_pathname(&f);
+ 		close(fd);
+--- a/tests/fssum.c
++++ b/tests/fssum.c
+@@ -519,9 +519,9 @@ sum(int dirfd, int level, sum_t *dircs,
+ 	int excl;
+ 	sum_file_data_t sum_file_data = flags[FLAG_STRUCTURE] ?
+ 			sum_file_data_strict : sum_file_data_permissive;
+-	struct stat64 dir_st;
++	struct stat dir_st;
+ 
+-	if (fstat64(dirfd, &dir_st)) {
++	if (fstat(dirfd, &dir_st)) {
+ 		perror("fstat");
+ 		exit(-1);
+ 	}
+@@ -552,7 +552,7 @@ sum(int dirfd, int level, sum_t *dircs,
+ 	}
+ 	qsort(namelist, entries, sizeof(*namelist), namecmp);
+ 	for (i = 0; i < entries; ++i) {
+-		struct stat64 st;
++		struct stat st;
+ 		sum_t cs;
+ 		sum_t meta;
+ 		char *path;
+@@ -572,7 +572,7 @@ sum(int dirfd, int level, sum_t *dircs,
+ 			perror("fchdir");
+ 			exit(-1);
+ 		}
+-		ret = lstat64(namelist[i], &st);
++		ret = lstat(namelist[i], &st);
+ 		if (ret) {
+ 			fprintf(stderr, "stat failed for %s/%s: %m\n",
+ 				path_prefix, path);
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.1.bb b/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.1.bb
index 7144087a11..0372c189a8 100644
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.1.bb
+++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.1.bb
@@ -17,6 +17,7 @@ DEPENDS = "util-linux zlib"
 
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master \
            file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
+           file://0001-Use-pread-pwrite-ftruncate-stat-instead-of-64bit-equ.patch \
            "
 SRCREV = "441d01556873385d55fd4940f50ee7ae1fcfb13d"
 S = "${WORKDIR}/git"
-- 
2.38.1



  parent reply	other threads:[~2022-12-01 19:02 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-01 19:02 [PATCH 1/6] mdadm: Use _FILE_OFFSET_BITS to use largefile support Khem Raj
2022-12-01 19:02 ` [PATCH 2/6] acl: Enable largefile support by default Khem Raj
2022-12-06 15:27   ` [OE-core] " Richard Purdie
2022-12-01 19:02 ` Khem Raj [this message]
2022-12-01 19:07   ` [OE-core] [PATCH 3/6] btrfs-tools: Do not use 64bit functions for largefile support Alexander Kanavin
     [not found]   ` <172CC0ECD8B86688.27320@lists.openembedded.org>
2022-12-06 14:58     ` Alexander Kanavin
2022-12-06 15:29       ` Richard Purdie
2022-12-06 16:09         ` Alexander Kanavin
2022-12-01 19:02 ` [PATCH 4/6] e2fsprogs: " Khem Raj
2022-12-01 19:02 ` [PATCH 5/6] libpciaccess: " Khem Raj
2022-12-01 19:02 ` [PATCH 6/6] pseudo: Disable LFS on 32bit arches Khem Raj
2022-12-01 19:12   ` [OE-core] " Richard Purdie
2022-12-01 23:05     ` Alexandre Belloni
2022-12-01 23:07       ` Khem Raj
2022-12-01 23:20         ` Richard Purdie
2022-12-01 23:22           ` Khem Raj

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=20221201190248.175753-3-raj.khem@gmail.com \
    --to=raj.khem@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.