On Wed, Nov 08, 2023 at 06:11:15PM -0800, Darrick J. Wong wrote: > On Thu, Nov 09, 2023 at 01:02:38AM +0000, Sam James wrote: > > > > "Darrick J. Wong" <djwong@xxxxxxxxxx> writes: > > > > > On Sun, Nov 05, 2023 at 06:39:32PM +0000, Sam James wrote: > > >> From: Violet Purcell <vimproved@xxxxxxxxxxxxx> > > >> > > >> LFS64 interfaces are non-standard and are being removed in the upcoming musl > > >> 1.2.5. Setting _FILE_OFFSET_BITS=64 (which is currently being done) makes all > > >> interfaces on glibc 64-bit by default, so using the LFS64 interfaces is > > >> redundant. This commit replaces all occurences of off64_t with off_t, > > >> stat64 with stat, and fstat64 with fstat. > > >> > > >> Bug: https://bugs.gentoo.org/907039 > > >> Signed-off-by: Violet Purcell <vimproved@xxxxxxxxxxxxx> > > >> Signed-off-by: Sam James <sam@xxxxxxxxxx> > > > > > > This mostly looks ok, with one caveat: Should we be adding to the > > > codebase a build sanity check such as: > > > > > > BUILD_BUG_ON(sizeof(off_t) < 8); > > > > > > To make sure that -D_FILE_OFFSET_BITS=64 actually does what we think > > > it > > > does? > > > > I like the idea here, but in theory it's valid for a libc to just never > > bother supporting a bigger off_t. I'd say this is mostly theoretical but > > someone brought it up at https://github.com/mesonbuild/meson/issues/10237. > > > > The usecase mentioned there doesn't sound relevant at all to xfsprogs, > > so we should be OK to add the assert. Just wanted to raise the point in > > case it changes your mind though. > > At this point in time, I don't think there's much of a usecase for XFS > on a system that can't handle > 4GB filesystems. > > > > Also, should we start setting -D_TIME_BITS=64 to handle Y2038 problems > > > on 32-bit systems? > > > > Yeah, we can do this. The only caveat is if a time_t-containing-type > > appears in a library installed by xfsprogs that is used by other > > software, as it breaks ABI. > > > > I don't see anything obvious in xfs/handle.h but I haven't > > checked each typedef or ran libabigail's abidiff yet with > > that extra change. > > > > lmk what you think and I'll add the relevant bits, test, and > > respin. > > Setting _TIME_BITS should definitely be a second patch so that bisection > can land on it if there are any problems. I didn't see any complaints > (or any output, really) from abidiff when I tried it on x64. (...and I don't have i386/armhf build abilities anymore, which is a shame since that's a much more likely place to find abi problems.) --D > > --D > > > > > > > > > --D > > > > > >> --- > > >> copy/xfs_copy.c | 2 +- > > >> fsr/xfs_fsr.c | 2 +- > > >> io/bmap.c | 6 +++--- > > >> io/copy_file_range.c | 4 ++-- > > >> io/cowextsize.c | 6 +++--- > > >> io/fadvise.c | 2 +- > > >> io/fiemap.c | 6 +++--- > > >> io/fsmap.c | 6 +++--- > > >> io/io.h | 10 +++++----- > > >> io/madvise.c | 2 +- > > >> io/mincore.c | 2 +- > > >> io/mmap.c | 13 +++++++------ > > >> io/pread.c | 22 +++++++++++----------- > > >> io/pwrite.c | 20 ++++++++++---------- > > >> io/reflink.c | 4 ++-- > > >> io/seek.c | 6 +++--- > > >> io/sendfile.c | 6 +++--- > > >> io/stat.c | 2 +- > > >> io/sync_file_range.c | 2 +- > > >> io/truncate.c | 2 +- > > >> libxfs/rdwr.c | 8 ++++---- > > >> mdrestore/xfs_mdrestore.c | 2 +- > > >> repair/prefetch.c | 2 +- > > >> scrub/spacemap.c | 6 +++--- > > >> spaceman/freesp.c | 4 ++-- > > >> spaceman/trim.c | 2 +- > > >> 26 files changed, 75 insertions(+), 74 deletions(-) > > >> > > >> diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c > > >> index 79f65946..854fd7f4 100644 > > >> --- a/copy/xfs_copy.c > > >> +++ b/copy/xfs_copy.c > > >> @@ -888,7 +888,7 @@ main(int argc, char **argv) > > >> } > > >> } else { > > >> char *lb[XFS_MAX_SECTORSIZE] = { NULL }; > > >> - off64_t off; > > >> + off_t off; > > >> > > >> /* ensure device files are sufficiently large */ > > >> > > >> diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c > > >> index ba02506d..12fffbd8 100644 > > >> --- a/fsr/xfs_fsr.c > > >> +++ b/fsr/xfs_fsr.c > > >> @@ -1148,7 +1148,7 @@ packfile(char *fname, char *tname, int fd, > > >> struct dioattr dio; > > >> static xfs_swapext_t sx; > > >> struct xfs_flock64 space; > > >> - off64_t cnt, pos; > > >> + off_t cnt, pos; > > >> void *fbuf = NULL; > > >> int ct, wc, wc_b4; > > >> char ffname[SMBUFSZ]; > > >> diff --git a/io/bmap.c b/io/bmap.c > > >> index 722a389b..6182e1c5 100644 > > >> --- a/io/bmap.c > > >> +++ b/io/bmap.c > > >> @@ -257,7 +257,7 @@ bmap_f( > > >> #define FLG_BSW 0000010 /* Not on begin of stripe width */ > > >> #define FLG_ESW 0000001 /* Not on end of stripe width */ > > >> int agno; > > >> - off64_t agoff, bbperag; > > >> + off_t agoff, bbperag; > > >> int foff_w, boff_w, aoff_w, tot_w, agno_w; > > >> char rbuf[32], bbuf[32], abuf[32]; > > >> int sunit, swidth; > > >> @@ -267,8 +267,8 @@ bmap_f( > > >> if (is_rt) > > >> sunit = swidth = bbperag = 0; > > >> else { > > >> - bbperag = (off64_t)fsgeo.agblocks * > > >> - (off64_t)fsgeo.blocksize / BBSIZE; > > >> + bbperag = (off_t)fsgeo.agblocks * > > >> + (off_t)fsgeo.blocksize / BBSIZE; > > >> sunit = (fsgeo.sunit * fsgeo.blocksize) / BBSIZE; > > >> swidth = (fsgeo.swidth * fsgeo.blocksize) / BBSIZE; > > >> } > > >> diff --git a/io/copy_file_range.c b/io/copy_file_range.c > > >> index d154fa76..422e691a 100644 > > >> --- a/io/copy_file_range.c > > >> +++ b/io/copy_file_range.c > > >> @@ -54,7 +54,7 @@ copy_file_range_cmd(int fd, long long *src_off, long long *dst_off, size_t len) > > >> return 0; > > >> } > > >> > > >> -static off64_t > > >> +static off_t > > >> copy_src_filesize(int fd) > > >> { > > >> struct stat st; > > >> @@ -154,7 +154,7 @@ copy_range_f(int argc, char **argv) > > >> } > > >> > > >> if (!len_specified) { > > >> - off64_t sz; > > >> + off_t sz; > > >> > > >> sz = copy_src_filesize(fd); > > >> if (sz < 0 || (unsigned long long)sz > SIZE_MAX) { > > >> diff --git a/io/cowextsize.c b/io/cowextsize.c > > >> index f6b134df..00e40c6f 100644 > > >> --- a/io/cowextsize.c > > >> +++ b/io/cowextsize.c > > >> @@ -50,10 +50,10 @@ static int > > >> set_cowextsize(const char *path, int fd, long extsz) > > >> { > > >> struct fsxattr fsx; > > >> - struct stat64 stat; > > >> + struct stat stat; > > >> > > >> - if (fstat64(fd, &stat) < 0) { > > >> - perror("fstat64"); > > >> + if (fstat(fd, &stat) < 0) { > > >> + perror("fstat"); > > >> exitcode = 1; > > >> return 0; > > >> } > > >> diff --git a/io/fadvise.c b/io/fadvise.c > > >> index 60cc0f08..0966c41b 100644 > > >> --- a/io/fadvise.c > > >> +++ b/io/fadvise.c > > >> @@ -39,7 +39,7 @@ fadvise_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset = 0, length = 0; > > >> + off_t offset = 0, length = 0; > > >> int c, range = 0, advise = POSIX_FADV_NORMAL; > > >> > > >> while ((c = getopt(argc, argv, "dnrsw")) != EOF) { > > >> diff --git a/io/fiemap.c b/io/fiemap.c > > >> index f0c74dfe..b41f71bf 100644 > > >> --- a/io/fiemap.c > > >> +++ b/io/fiemap.c > > >> @@ -234,9 +234,9 @@ fiemap_f( > > >> int tot_w = 5; /* 5 since its just one number */ > > >> int flg_w = 5; > > >> __u64 last_logical = 0; /* last extent offset handled */ > > >> - off64_t start_offset = 0; /* mapping start */ > > >> - off64_t length = -1LL; /* mapping length */ > > >> - off64_t range_end = -1LL; /* mapping end*/ > > >> + off_t start_offset = 0; /* mapping start */ > > >> + off_t length = -1LL; /* mapping length */ > > >> + off_t range_end = -1LL; /* mapping end*/ > > >> size_t fsblocksize, fssectsize; > > >> struct stat st; > > >> > > >> diff --git a/io/fsmap.c b/io/fsmap.c > > >> index 7db51847..bf119639 100644 > > >> --- a/io/fsmap.c > > >> +++ b/io/fsmap.c > > >> @@ -170,7 +170,7 @@ dump_map_verbose( > > >> unsigned long long i; > > >> struct fsmap *p; > > >> int agno; > > >> - off64_t agoff, bperag; > > >> + off_t agoff, bperag; > > >> int foff_w, boff_w, aoff_w, tot_w, agno_w, own_w; > > >> int nr_w, dev_w; > > >> char rbuf[40], bbuf[40], abuf[40], obuf[40]; > > >> @@ -183,8 +183,8 @@ dump_map_verbose( > > >> dev_w = 3; > > >> nr_w = 4; > > >> tot_w = MINTOT_WIDTH; > > >> - bperag = (off64_t)fsgeo->agblocks * > > >> - (off64_t)fsgeo->blocksize; > > >> + bperag = (off_t)fsgeo->agblocks * > > >> + (off_t)fsgeo->blocksize; > > >> sunit = (fsgeo->sunit * fsgeo->blocksize); > > >> swidth = (fsgeo->swidth * fsgeo->blocksize); > > >> > > >> diff --git a/io/io.h b/io/io.h > > >> index fe474faf..68e5e487 100644 > > >> --- a/io/io.h > > >> +++ b/io/io.h > > >> @@ -53,7 +53,7 @@ extern int stat_f(int argc, char **argv); > > >> typedef struct mmap_region { > > >> void *addr; /* address of start of mapping */ > > >> size_t length; /* length of mapping */ > > >> - off64_t offset; /* start offset into backing file */ > > >> + off_t offset; /* start offset into backing file */ > > >> int prot; /* protection mode of the mapping */ > > >> int flags; /* MAP_* flags passed to mmap() */ > > >> char *name; /* name of backing file */ > > >> @@ -63,13 +63,13 @@ extern mmap_region_t *maptable; /* mmap'd region array */ > > >> extern int mapcount; /* #entries in the mapping table */ > > >> extern mmap_region_t *mapping; /* active mapping table entry */ > > >> extern int maplist_f(void); > > >> -extern void *check_mapping_range(mmap_region_t *, off64_t, size_t, int); > > >> +extern void *check_mapping_range(mmap_region_t *, off_t, size_t, int); > > >> > > >> /* > > >> * Various xfs_io helper routines/globals > > >> */ > > >> > > >> -extern off64_t filesize(void); > > >> +extern off_t filesize(void); > > >> extern int openfile(char *, struct xfs_fsop_geom *, int, mode_t, > > >> struct fs_path *); > > >> extern int addfile(char *, int , struct xfs_fsop_geom *, int, > > >> @@ -84,9 +84,9 @@ extern size_t io_buffersize; > > >> extern int vectors; > > >> extern struct iovec *iov; > > >> extern int alloc_buffer(size_t, int, unsigned int); > > >> -extern int read_buffer(int, off64_t, long long, long long *, > > >> +extern int read_buffer(int, off_t, long long, long long *, > > >> int, int); > > >> -extern void dump_buffer(off64_t, ssize_t); > > >> +extern void dump_buffer(off_t, ssize_t); > > >> > > >> extern void attr_init(void); > > >> extern void bmap_init(void); > > >> diff --git a/io/madvise.c b/io/madvise.c > > >> index bde31539..6e9c5b12 100644 > > >> --- a/io/madvise.c > > >> +++ b/io/madvise.c > > >> @@ -39,7 +39,7 @@ madvise_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset, llength; > > >> + off_t offset, llength; > > >> size_t length; > > >> void *start; > > >> int advise = MADV_NORMAL, c; > > >> diff --git a/io/mincore.c b/io/mincore.c > > >> index 67f1d6c4..24147ac2 100644 > > >> --- a/io/mincore.c > > >> +++ b/io/mincore.c > > >> @@ -17,7 +17,7 @@ mincore_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset, llength; > > >> + off_t offset, llength; > > >> size_t length; > > >> size_t blocksize, sectsize; > > >> void *start; > > >> diff --git a/io/mmap.c b/io/mmap.c > > >> index 425957d4..7161ae8e 100644 > > >> --- a/io/mmap.c > > >> +++ b/io/mmap.c > > >> @@ -63,11 +63,11 @@ print_mapping( > > >> void * > > >> check_mapping_range( > > >> mmap_region_t *map, > > >> - off64_t offset, > > >> + off_t offset, > > >> size_t length, > > >> int pagealign) > > >> { > > >> - off64_t relative; > > >> + off_t relative; > > >> > > >> if (offset < mapping->offset) { > > >> printf(_("offset (%lld) is before start of mapping (%lld)\n"), > > >> @@ -155,7 +155,8 @@ mmap_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset; > > >> + off_t offset; > > >> + > > >> ssize_t length = 0, length2 = 0; > > >> void *address = NULL; > > >> char *filename; > > >> @@ -308,7 +309,7 @@ msync_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset; > > >> + off_t offset; > > >> ssize_t length; > > >> void *start; > > >> int c, flags = 0; > > >> @@ -401,7 +402,7 @@ mread_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset, tmp, dumpoffset, printoffset; > > >> + off_t offset, tmp, dumpoffset, printoffset; > > >> ssize_t length; > > >> size_t dumplen, cnt = 0; > > >> char *bp; > > >> @@ -566,7 +567,7 @@ mwrite_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset, tmp; > > >> + off_t offset, tmp; > > >> ssize_t length; > > >> void *start; > > >> char *sp; > > >> diff --git a/io/pread.c b/io/pread.c > > >> index 0f1d8b97..79990c6a 100644 > > >> --- a/io/pread.c > > >> +++ b/io/pread.c > > >> @@ -116,7 +116,7 @@ alloc_buffer( > > >> static void > > >> __dump_buffer( > > >> void *buf, > > >> - off64_t offset, > > >> + off_t offset, > > >> ssize_t len) > > >> { > > >> int i, j; > > >> @@ -141,7 +141,7 @@ __dump_buffer( > > >> > > >> void > > >> dump_buffer( > > >> - off64_t offset, > > >> + off_t offset, > > >> ssize_t len) > > >> { > > >> int i, l; > > >> @@ -164,7 +164,7 @@ dump_buffer( > > >> static ssize_t > > >> do_preadv( > > >> int fd, > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count) > > >> { > > >> int vecs = 0; > > >> @@ -199,7 +199,7 @@ do_preadv( > > >> static ssize_t > > >> do_pread( > > >> int fd, > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> size_t buffer_size) > > >> { > > >> @@ -212,13 +212,13 @@ do_pread( > > >> static int > > >> read_random( > > >> int fd, > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> long long *total, > > >> unsigned int seed, > > >> int eof) > > >> { > > >> - off64_t end, off, range; > > >> + off_t end, off, range; > > >> ssize_t bytes; > > >> int ops = 0; > > >> > > >> @@ -259,12 +259,12 @@ read_random( > > >> static int > > >> read_backward( > > >> int fd, > > >> - off64_t *offset, > > >> + off_t *offset, > > >> long long *count, > > >> long long *total, > > >> int eof) > > >> { > > >> - off64_t end, off = *offset; > > >> + off_t end, off = *offset; > > >> ssize_t bytes = 0, bytes_requested; > > >> long long cnt = *count; > > >> int ops = 0; > > >> @@ -319,7 +319,7 @@ read_backward( > > >> static int > > >> read_forward( > > >> int fd, > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> long long *total, > > >> int verbose, > > >> @@ -353,7 +353,7 @@ read_forward( > > >> int > > >> read_buffer( > > >> int fd, > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> long long *total, > > >> int verbose, > > >> @@ -368,7 +368,7 @@ pread_f( > > >> char **argv) > > >> { > > >> size_t bsize; > > >> - off64_t offset; > > >> + off_t offset; > > >> unsigned int zeed = 0; > > >> long long count, total, tmp; > > >> size_t fsblocksize, fssectsize; > > >> diff --git a/io/pwrite.c b/io/pwrite.c > > >> index 467bfa9f..8d134c56 100644 > > >> --- a/io/pwrite.c > > >> +++ b/io/pwrite.c > > >> @@ -54,7 +54,7 @@ pwrite_help(void) > > >> static ssize_t > > >> do_pwritev( > > >> int fd, > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> int pwritev2_flags) > > >> { > > >> @@ -97,7 +97,7 @@ do_pwritev( > > >> static ssize_t > > >> do_pwrite( > > >> int fd, > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> size_t buffer_size, > > >> int pwritev2_flags) > > >> @@ -110,13 +110,13 @@ do_pwrite( > > >> > > >> static int > > >> write_random( > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> unsigned int seed, > > >> long long *total, > > >> int pwritev2_flags) > > >> { > > >> - off64_t off, range; > > >> + off_t off, range; > > >> ssize_t bytes; > > >> int ops = 0; > > >> > > >> @@ -155,12 +155,12 @@ write_random( > > >> > > >> static int > > >> write_backward( > > >> - off64_t offset, > > >> + off_t offset, > > >> long long *count, > > >> long long *total, > > >> int pwritev2_flags) > > >> { > > >> - off64_t end, off = offset; > > >> + off_t end, off = offset; > > >> ssize_t bytes = 0, bytes_requested; > > >> long long cnt = *count; > > >> int ops = 0; > > >> @@ -214,11 +214,11 @@ write_backward( > > >> > > >> static int > > >> write_buffer( > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> size_t bs, > > >> int fd, > > >> - off64_t skip, > > >> + off_t skip, > > >> long long *total, > > >> int pwritev2_flags) > > >> { > > >> @@ -253,7 +253,7 @@ write_buffer( > > >> > > >> static int > > >> write_once( > > >> - off64_t offset, > > >> + off_t offset, > > >> long long count, > > >> long long *total, > > >> int pwritev2_flags) > > >> @@ -275,7 +275,7 @@ pwrite_f( > > >> char **argv) > > >> { > > >> size_t bsize; > > >> - off64_t offset, skip = 0; > > >> + off_t offset, skip = 0; > > >> long long count, total, tmp; > > >> unsigned int zeed = 0, seed = 0xcdcdcdcd; > > >> size_t fsblocksize, fssectsize; > > >> diff --git a/io/reflink.c b/io/reflink.c > > >> index 8e4f3899..b6a3c05a 100644 > > >> --- a/io/reflink.c > > >> +++ b/io/reflink.c > > >> @@ -98,7 +98,7 @@ dedupe_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t soffset, doffset; > > >> + off_t soffset, doffset; > > >> long long count, total; > > >> char *infile; > > >> int condensed, quiet_flag; > > >> @@ -226,7 +226,7 @@ reflink_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t soffset, doffset; > > >> + off_t soffset, doffset; > > >> long long count = 0, total; > > >> char *infile = NULL; > > >> int condensed, quiet_flag; > > >> diff --git a/io/seek.c b/io/seek.c > > >> index 6734ecb5..ffe7439c 100644 > > >> --- a/io/seek.c > > >> +++ b/io/seek.c > > >> @@ -63,8 +63,8 @@ static void > > >> seek_output( > > >> int startflag, > > >> char *type, > > >> - off64_t start, > > >> - off64_t offset) > > >> + off_t start, > > >> + off_t offset) > > >> { > > >> if (offset == -1) { > > >> if (errno == ENXIO) { > > >> @@ -92,7 +92,7 @@ seek_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset, start; > > >> + off_t offset, start; > > >> size_t fsblocksize, fssectsize; > > >> int c; > > >> int current; /* specify data or hole */ > > >> diff --git a/io/sendfile.c b/io/sendfile.c > > >> index a003bb55..2ce569c2 100644 > > >> --- a/io/sendfile.c > > >> +++ b/io/sendfile.c > > >> @@ -34,12 +34,12 @@ sendfile_help(void) > > >> > > >> static int > > >> send_buffer( > > >> - off64_t offset, > > >> + off_t offset, > > >> size_t count, > > >> int fd, > > >> long long *total) > > >> { > > >> - off64_t off = offset; > > >> + off_t off = offset; > > >> ssize_t bytes, bytes_remaining = count; > > >> int ops = 0; > > >> > > >> @@ -66,7 +66,7 @@ sendfile_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset = 0; > > >> + off_t offset = 0; > > >> long long count, total; > > >> size_t blocksize, sectsize; > > >> struct timeval t1, t2; > > >> diff --git a/io/stat.c b/io/stat.c > > >> index b57f9eef..e8f68dc3 100644 > > >> --- a/io/stat.c > > >> +++ b/io/stat.c > > >> @@ -21,7 +21,7 @@ static cmdinfo_t stat_cmd; > > >> static cmdinfo_t statfs_cmd; > > >> static cmdinfo_t statx_cmd; > > >> > > >> -off64_t > > >> +off_t > > >> filesize(void) > > >> { > > >> struct stat st; > > >> diff --git a/io/sync_file_range.c b/io/sync_file_range.c > > >> index 94285c22..2375a060 100644 > > >> --- a/io/sync_file_range.c > > >> +++ b/io/sync_file_range.c > > >> @@ -30,7 +30,7 @@ sync_range_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset = 0, length = 0; > > >> + off_t offset = 0, length = 0; > > >> int c, sync_mode = 0; > > >> size_t blocksize, sectsize; > > >> > > >> diff --git a/io/truncate.c b/io/truncate.c > > >> index 1d049194..a74b6131 100644 > > >> --- a/io/truncate.c > > >> +++ b/io/truncate.c > > >> @@ -16,7 +16,7 @@ truncate_f( > > >> int argc, > > >> char **argv) > > >> { > > >> - off64_t offset; > > >> + off_t offset; > > >> size_t blocksize, sectsize; > > >> > > >> init_cvtnum(&blocksize, §size); > > >> diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c > > >> index ccd1501a..4eba0094 100644 > > >> --- a/libxfs/rdwr.c > > >> +++ b/libxfs/rdwr.c > > >> @@ -576,7 +576,7 @@ libxfs_balloc( > > >> > > >> > > >> static int > > >> -__read_buf(int fd, void *buf, int len, off64_t offset, int flags) > > >> +__read_buf(int fd, void *buf, int len, off_t offset, int flags) > > >> { > > >> int sts; > > >> > > >> @@ -639,7 +639,7 @@ libxfs_readbufr_map(struct xfs_buftarg *btp, struct xfs_buf *bp, int flags) > > >> fd = libxfs_device_to_fd(btp->bt_bdev); > > >> buf = bp->b_addr; > > >> for (i = 0; i < bp->b_nmaps; i++) { > > >> - off64_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn); > > >> + off_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn); > > >> int len = BBTOB(bp->b_maps[i].bm_len); > > >> > > >> error = __read_buf(fd, buf, len, offset, flags); > > >> @@ -798,7 +798,7 @@ err: > > >> } > > >> > > >> static int > > >> -__write_buf(int fd, void *buf, int len, off64_t offset, int flags) > > >> +__write_buf(int fd, void *buf, int len, off_t offset, int flags) > > >> { > > >> int sts; > > >> > > >> @@ -864,7 +864,7 @@ libxfs_bwrite( > > >> void *buf = bp->b_addr; > > >> > > >> for (i = 0; i < bp->b_nmaps; i++) { > > >> - off64_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn); > > >> + off_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn); > > >> int len = BBTOB(bp->b_maps[i].bm_len); > > >> > > >> bp->b_error = __write_buf(fd, buf, len, offset, > > >> diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c > > >> index 7c1a66c4..bb54e382 100644 > > >> --- a/mdrestore/xfs_mdrestore.c > > >> +++ b/mdrestore/xfs_mdrestore.c > > >> @@ -116,7 +116,7 @@ perform_restore( > > >> /* ensure device is sufficiently large enough */ > > >> > > >> char *lb[XFS_MAX_SECTORSIZE] = { NULL }; > > >> - off64_t off; > > >> + off_t off; > > >> > > >> off = sb.sb_dblocks * sb.sb_blocksize - sizeof(lb); > > >> if (pwrite(dst_fd, lb, sizeof(lb), off) < 0) > > >> diff --git a/repair/prefetch.c b/repair/prefetch.c > > >> index 017750e9..35b50134 100644 > > >> --- a/repair/prefetch.c > > >> +++ b/repair/prefetch.c > > >> @@ -475,7 +475,7 @@ pf_batch_read( > > >> { > > >> struct xfs_buf *bplist[MAX_BUFS]; > > >> unsigned int num; > > >> - off64_t first_off, last_off, next_off; > > >> + off_t first_off, last_off, next_off; > > >> int len, size; > > >> int i; > > >> int inode_bufs; > > >> diff --git a/scrub/spacemap.c b/scrub/spacemap.c > > >> index 03440d3a..00bee179 100644 > > >> --- a/scrub/spacemap.c > > >> +++ b/scrub/spacemap.c > > >> @@ -97,11 +97,11 @@ scan_ag_rmaps( > > >> struct scrub_ctx *ctx = (struct scrub_ctx *)wq->wq_ctx; > > >> struct scan_blocks *sbx = arg; > > >> struct fsmap keys[2]; > > >> - off64_t bperag; > > >> + off_t bperag; > > >> int ret; > > >> > > >> - bperag = (off64_t)ctx->mnt.fsgeom.agblocks * > > >> - (off64_t)ctx->mnt.fsgeom.blocksize; > > >> + bperag = (off_t)ctx->mnt.fsgeom.agblocks * > > >> + (off_t)ctx->mnt.fsgeom.blocksize; > > >> > > >> memset(keys, 0, sizeof(struct fsmap) * 2); > > >> keys->fmr_device = ctx->fsinfo.fs_datadev; > > >> diff --git a/spaceman/freesp.c b/spaceman/freesp.c > > >> index 70dcdb5c..f5177cb4 100644 > > >> --- a/spaceman/freesp.c > > >> +++ b/spaceman/freesp.c > > >> @@ -62,7 +62,7 @@ static void > > >> addtohist( > > >> xfs_agnumber_t agno, > > >> xfs_agblock_t agbno, > > >> - off64_t len) > > >> + off_t len) > > >> { > > >> long i; > > >> > > >> @@ -152,7 +152,7 @@ scan_ag( > > >> struct fsmap *l, *h; > > >> struct fsmap *p; > > >> struct xfs_fd *xfd = &file->xfd; > > >> - off64_t aglen; > > >> + off_t aglen; > > >> xfs_agblock_t agbno; > > >> unsigned long long freeblks = 0; > > >> unsigned long long freeexts = 0; > > >> diff --git a/spaceman/trim.c b/spaceman/trim.c > > >> index e9ed47e4..727dd818 100644 > > >> --- a/spaceman/trim.c > > >> +++ b/spaceman/trim.c > > >> @@ -26,7 +26,7 @@ trim_f( > > >> struct xfs_fd *xfd = &file->xfd; > > >> struct xfs_fsop_geom *fsgeom = &xfd->fsgeom; > > >> xfs_agnumber_t agno = 0; > > >> - off64_t offset = 0; > > >> + off_t offset = 0; > > >> ssize_t length = 0; > > >> ssize_t minlen = 0; > > >> int aflag = 0; > > >> -- > > >> 2.42.1 > > >> > >