summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Use-pread-pwrite-ftruncate-stat-instead-of-64bit-equ.patch903
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.2.bb1
2 files changed, 904 insertions, 0 deletions
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..2618687088
--- /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 @@
1From 37425f422e46003ed623f8e6387bed1aa5778b96 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Nov 2022 11:26:05 -0800
4Subject: [PATCH] Use pread/pwrite/ftruncate/stat instead of 64bit equivalents
5
664bit functions are aliases to original functions when largefile feature
7is enabled via autoconf or right macro is passed on compiler cmdline
8
9-D_FILE_OFFSET_BITS=64
10
11Upstream-Status: Submitted [https://lore.kernel.org/linux-btrfs/20221215084046.122836-1-raj.khem@gmail.com/T/#u]
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 cmds/rescue-chunk-recover.c | 4 +-
15 image/main.c | 14 +--
16 kernel-shared/zoned.c | 6 +-
17 kernel-shared/zoned.h | 4 +-
18 mkfs/main.c | 4 +-
19 mkfs/rootdir.c | 10 +-
20 tests/fsstress.c | 192 ++++++++++++++++++------------------
21 tests/fssum.c | 8 +-
22 8 files changed, 121 insertions(+), 121 deletions(-)
23
24--- a/cmds/rescue-chunk-recover.c
25+++ b/cmds/rescue-chunk-recover.c
26@@ -755,7 +755,7 @@ static int scan_one_device(void *dev_sca
27 if (is_super_block_address(bytenr))
28 bytenr += rc->sectorsize;
29
30- if (pread64(fd, buf->data, rc->nodesize, bytenr) <
31+ if (pread(fd, buf->data, rc->nodesize, bytenr) <
32 rc->nodesize)
33 break;
34
35@@ -1875,7 +1875,7 @@ static int check_one_csum(int fd, u64 st
36 data = malloc(len);
37 if (!data)
38 return -1;
39- ret = pread64(fd, data, len, start);
40+ ret = pread(fd, data, len, start);
41 if (ret < 0 || ret != len) {
42 ret = -1;
43 goto out;
44--- a/image/main.c
45+++ b/image/main.c
46@@ -691,7 +691,7 @@ static int flush_pending(struct metadump
47 if (start == BTRFS_SUPER_INFO_OFFSET) {
48 int fd = get_dev_fd(md->root);
49
50- ret = pread64(fd, async->buffer, size, start);
51+ ret = pread(fd, async->buffer, size, start);
52 if (ret < size) {
53 free(async->buffer);
54 free(async);
55@@ -1366,7 +1366,7 @@ static void write_backup_supers(int fd,
56 break;
57 btrfs_set_super_bytenr(super, bytenr);
58 csum_block(buf, BTRFS_SUPER_INFO_SIZE);
59- ret = pwrite64(fd, buf, BTRFS_SUPER_INFO_SIZE, bytenr);
60+ ret = pwrite(fd, buf, BTRFS_SUPER_INFO_SIZE, bytenr);
61 if (ret < BTRFS_SUPER_INFO_SIZE) {
62 if (ret < 0)
63 error(
64@@ -1487,12 +1487,12 @@ static int restore_one_work(struct mdres
65 else
66 bytenr = logical;
67
68- ret = pwrite64(outfd, buffer + offset, chunk_size, bytenr);
69+ ret = pwrite(outfd, buffer + offset, chunk_size, bytenr);
70 if (ret != chunk_size)
71 goto write_error;
72
73 if (physical_dup)
74- ret = pwrite64(outfd, buffer + offset,
75+ ret = pwrite(outfd, buffer + offset,
76 chunk_size, physical_dup);
77 if (ret != chunk_size)
78 goto write_error;
79@@ -2454,7 +2454,7 @@ static int fixup_device_size(struct btrf
80 }
81 if (S_ISREG(buf.st_mode)) {
82 /* Don't forget to enlarge the real file */
83- ret = ftruncate64(out_fd, dev_size);
84+ ret = ftruncate(out_fd, dev_size);
85 if (ret < 0) {
86 error("failed to enlarge result image: %m");
87 return -errno;
88@@ -2913,7 +2913,7 @@ static int restore_metadump(const char *
89 goto out;
90 }
91 if (S_ISREG(st.st_mode) && st.st_size < dev_size) {
92- ret = ftruncate64(fileno(out), dev_size);
93+ ret = ftruncate(fileno(out), dev_size);
94 if (ret < 0) {
95 error(
96 "failed to enlarge result image file from %llu to %llu: %m",
97@@ -3010,7 +3010,7 @@ static int update_disk_super_on_device(s
98 memcpy(dev_item->fsid, fs_uuid, BTRFS_UUID_SIZE);
99 csum_block((u8 *)&disk_super, BTRFS_SUPER_INFO_SIZE);
100
101- ret = pwrite64(fp, &disk_super, BTRFS_SUPER_INFO_SIZE, BTRFS_SUPER_INFO_OFFSET);
102+ ret = pwrite(fp, &disk_super, BTRFS_SUPER_INFO_SIZE, BTRFS_SUPER_INFO_OFFSET);
103 if (ret != BTRFS_SUPER_INFO_SIZE) {
104 if (ret < 0) {
105 errno = ret;
106--- a/kernel-shared/zoned.c
107+++ b/kernel-shared/zoned.c
108@@ -194,7 +194,7 @@ static int sb_write_pointer(int fd, stru
109 bytenr = ((zones[i].start + zones[i].len)
110 << SECTOR_SHIFT) - BTRFS_SUPER_INFO_SIZE;
111
112- ret = pread64(fd, buf[i], BTRFS_SUPER_INFO_SIZE, bytenr);
113+ ret = pread(fd, buf[i], BTRFS_SUPER_INFO_SIZE, bytenr);
114 if (ret != BTRFS_SUPER_INFO_SIZE)
115 return -EIO;
116 super[i] = (struct btrfs_super_block *)&buf[i];
117@@ -515,8 +515,8 @@ size_t btrfs_sb_io(int fd, void *buf, of
118 /* We can call pread/pwrite if 'fd' is non-zoned device/file */
119 if (zone_size_sector == 0) {
120 if (rw == READ)
121- return pread64(fd, buf, count, offset);
122- return pwrite64(fd, buf, count, offset);
123+ return pread(fd, buf, count, offset);
124+ return pwrite(fd, buf, count, offset);
125 }
126
127 ASSERT(IS_ALIGNED(zone_size_sector, sb_size_sector));
128--- a/kernel-shared/zoned.h
129+++ b/kernel-shared/zoned.h
130@@ -150,9 +150,9 @@ int btrfs_wipe_temporary_sb(struct btrfs
131 #else
132
133 #define sbread(fd, buf, offset) \
134- pread64(fd, buf, BTRFS_SUPER_INFO_SIZE, offset)
135+ pread(fd, buf, BTRFS_SUPER_INFO_SIZE, offset)
136 #define sbwrite(fd, buf, offset) \
137- pwrite64(fd, buf, BTRFS_SUPER_INFO_SIZE, offset)
138+ pwrite(fd, buf, BTRFS_SUPER_INFO_SIZE, offset)
139
140 static inline int btrfs_reset_dev_zone(int fd, struct blk_zone *zone)
141 {
142--- a/mkfs/main.c
143+++ b/mkfs/main.c
144@@ -453,14 +453,14 @@ static int zero_output_file(int out_fd,
145 /* Only zero out the first 1M */
146 loop_num = SZ_1M / SZ_4K;
147 for (i = 0; i < loop_num; i++) {
148- written = pwrite64(out_fd, buf, SZ_4K, location);
149+ written = pwrite(out_fd, buf, SZ_4K, location);
150 if (written != SZ_4K)
151 ret = -EIO;
152 location += SZ_4K;
153 }
154
155 /* Then enlarge the file to size */
156- written = pwrite64(out_fd, buf, 1, size - 1);
157+ written = pwrite(out_fd, buf, 1, size - 1);
158 if (written < 1)
159 ret = -EIO;
160 return ret;
161--- a/mkfs/rootdir.c
162+++ b/mkfs/rootdir.c
163@@ -340,7 +340,7 @@ static int add_file_items(struct btrfs_t
164 goto end;
165 }
166
167- ret_read = pread64(fd, buffer, st->st_size, bytes_read);
168+ ret_read = pread(fd, buffer, st->st_size, bytes_read);
169 if (ret_read == -1) {
170 error("cannot read %s at offset %llu length %llu: %m",
171 path_name, bytes_read, (unsigned long long)st->st_size);
172@@ -386,7 +386,7 @@ again:
173
174 memset(eb->data, 0, sectorsize);
175
176- ret_read = pread64(fd, eb->data, sectorsize, file_pos +
177+ ret_read = pread(fd, eb->data, sectorsize, file_pos +
178 bytes_read);
179 if (ret_read == -1) {
180 error("cannot read %s at offset %llu length %u: %m",
181@@ -929,7 +929,7 @@ int btrfs_mkfs_shrink_fs(struct btrfs_fs
182 u64 new_size;
183 struct btrfs_device *device;
184 struct list_head *cur;
185- struct stat64 file_stat;
186+ struct stat file_stat;
187 int nr_devs = 0;
188 int ret;
189
190@@ -963,14 +963,14 @@ int btrfs_mkfs_shrink_fs(struct btrfs_fs
191 *new_size_ret = new_size;
192
193 if (shrink_file_size) {
194- ret = fstat64(device->fd, &file_stat);
195+ ret = fstat(device->fd, &file_stat);
196 if (ret < 0) {
197 error("failed to stat devid %llu: %m", device->devid);
198 return ret;
199 }
200 if (!S_ISREG(file_stat.st_mode))
201 return ret;
202- ret = ftruncate64(device->fd, new_size);
203+ ret = ftruncate(device->fd, new_size);
204 if (ret < 0) {
205 error("failed to truncate device file of devid %llu: %m",
206 device->devid);
207--- a/tests/fsstress.c
208+++ b/tests/fsstress.c
209@@ -458,7 +458,7 @@ int get_fname(int, long, pathname_t *, f
210 void init_pathname(pathname_t *);
211 int lchown_path(pathname_t *, uid_t, gid_t);
212 int link_path(pathname_t *, pathname_t *);
213-int lstat64_path(pathname_t *, struct stat64 *);
214+int lstat_path(pathname_t *, struct stat *);
215 void make_freq_table(void);
216 int mkdir_path(pathname_t *, mode_t);
217 int mknod_path(pathname_t *, mode_t, dev_t);
218@@ -472,9 +472,9 @@ int rename_path(pathname_t *, pathname_t
219 int rmdir_path(pathname_t *);
220 void separate_pathname(pathname_t *, char *, pathname_t *);
221 void show_ops(int, char *);
222-int stat64_path(pathname_t *, struct stat64 *);
223+int stat_path(pathname_t *, struct stat *);
224 int symlink_path(const char *, pathname_t *);
225-int truncate64_path(pathname_t *, off64_t);
226+int truncate_path(pathname_t *, off64_t);
227 int unlink_path(pathname_t *);
228 void usage(void);
229 void write_freq(void);
230@@ -998,12 +998,12 @@ void
231 check_cwd(void)
232 {
233 #ifdef DEBUG
234- struct stat64 statbuf;
235+ struct stat statbuf;
236 int ret;
237
238- ret = stat64(".", &statbuf);
239+ ret = stat(".", &statbuf);
240 if (ret != 0) {
241- fprintf(stderr, "fsstress: check_cwd stat64() returned %d with errno: %d (%m)\n",
242+ fprintf(stderr, "fsstress: check_cwd stat() returned %d with errno: %d (%m)\n",
243 ret, errno);
244 goto out;
245 }
246@@ -1171,7 +1171,7 @@ again:
247 void
248 doproc(void)
249 {
250- struct stat64 statbuf;
251+ struct stat statbuf;
252 char buf[10];
253 char cmd[64];
254 opnum_t opno;
255@@ -1182,7 +1182,7 @@ doproc(void)
256 dividend = (operations + execute_freq) / (execute_freq + 1);
257 sprintf(buf, "p%x", procid);
258 (void)mkdir(buf, 0777);
259- if (chdir(buf) < 0 || stat64(".", &statbuf) < 0) {
260+ if (chdir(buf) < 0 || stat(".", &statbuf) < 0) {
261 perror(buf);
262 _exit(1);
263 }
264@@ -1214,7 +1214,7 @@ doproc(void)
265 * the forced shutdown happened.
266 */
267 if (errtag != 0 && opno % 100 == 0) {
268- rval = stat64(".", &statbuf);
269+ rval = stat(".", &statbuf);
270 if (rval == EIO) {
271 fprintf(stderr, "Detected EIO\n");
272 goto errout;
273@@ -1537,18 +1537,18 @@ link_path(pathname_t *name1, pathname_t
274 }
275
276 int
277-lstat64_path(pathname_t *name, struct stat64 *sbuf)
278+lstat_path(pathname_t *name, struct stat *sbuf)
279 {
280 char buf[NAME_MAX + 1];
281 pathname_t newname;
282 int rval;
283
284- rval = lstat64(name->path, sbuf);
285+ rval = lstat(name->path, sbuf);
286 if (rval >= 0 || errno != ENAMETOOLONG)
287 return rval;
288 separate_pathname(name, buf, &newname);
289 if (chdir(buf) == 0) {
290- rval = lstat64_path(&newname, sbuf);
291+ rval = lstat_path(&newname, sbuf);
292 assert(chdir("..") == 0);
293 }
294 free_pathname(&newname);
295@@ -1870,18 +1870,18 @@ show_ops(int flag, char *lead_str)
296 }
297
298 int
299-stat64_path(pathname_t *name, struct stat64 *sbuf)
300+stat_path(pathname_t *name, struct stat *sbuf)
301 {
302 char buf[NAME_MAX + 1];
303 pathname_t newname;
304 int rval;
305
306- rval = stat64(name->path, sbuf);
307+ rval = stat(name->path, sbuf);
308 if (rval >= 0 || errno != ENAMETOOLONG)
309 return rval;
310 separate_pathname(name, buf, &newname);
311 if (chdir(buf) == 0) {
312- rval = stat64_path(&newname, sbuf);
313+ rval = stat_path(&newname, sbuf);
314 assert(chdir("..") == 0);
315 }
316 free_pathname(&newname);
317@@ -1913,18 +1913,18 @@ symlink_path(const char *name1, pathname
318 }
319
320 int
321-truncate64_path(pathname_t *name, off64_t length)
322+truncate_path(pathname_t *name, off64_t length)
323 {
324 char buf[NAME_MAX + 1];
325 pathname_t newname;
326 int rval;
327
328- rval = truncate64(name->path, length);
329+ rval = truncate(name->path, length);
330 if (rval >= 0 || errno != ENAMETOOLONG)
331 return rval;
332 separate_pathname(name, buf, &newname);
333 if (chdir(buf) == 0) {
334- rval = truncate64_path(&newname, length);
335+ rval = truncate_path(&newname, length);
336 assert(chdir("..") == 0);
337 }
338 free_pathname(&newname);
339@@ -2026,7 +2026,7 @@ non_btrfs_freq(const char *path)
340 ops[btrfs_ops[i]].freq = 0;
341 }
342
343-void inode_info(char *str, size_t sz, struct stat64 *s, int verbose)
344+void inode_info(char *str, size_t sz, struct stat *s, int verbose)
345 {
346 if (verbose)
347 snprintf(str, sz, "[%ld %ld %d %d %lld %lld]",
348@@ -2101,7 +2101,7 @@ allocsp_f(opnum_t opno, long r)
349 struct xfs_flock64 fl;
350 int64_t lr;
351 off64_t off;
352- struct stat64 stb;
353+ struct stat stb;
354 int v;
355 char st[1024];
356
357@@ -2122,9 +2122,9 @@ allocsp_f(opnum_t opno, long r)
358 free_pathname(&f);
359 return;
360 }
361- if (fstat64(fd, &stb) < 0) {
362+ if (fstat(fd, &stb) < 0) {
363 if (v)
364- printf("%d/%lld: allocsp - fstat64 %s failed %d\n",
365+ printf("%d/%lld: allocsp - fstat %s failed %d\n",
366 procid, opno, f.path, errno);
367 free_pathname(&f);
368 close(fd);
369@@ -2160,7 +2160,7 @@ do_aio_rw(opnum_t opno, long r, int flag
370 size_t len;
371 int64_t lr;
372 off64_t off;
373- struct stat64 stb;
374+ struct stat stb;
375 int v;
376 char st[1024];
377 char *dio_env;
378@@ -2184,9 +2184,9 @@ do_aio_rw(opnum_t opno, long r, int flag
379 procid, opno, f.path, e);
380 goto aio_out;
381 }
382- if (fstat64(fd, &stb) < 0) {
383+ if (fstat(fd, &stb) < 0) {
384 if (v)
385- printf("%d/%lld: do_aio_rw - fstat64 %s failed %d\n",
386+ printf("%d/%lld: do_aio_rw - fstat %s failed %d\n",
387 procid, opno, f.path, errno);
388 goto aio_out;
389 }
390@@ -2278,7 +2278,7 @@ do_uring_rw(opnum_t opno, long r, int fl
391 size_t len;
392 int64_t lr;
393 off64_t off;
394- struct stat64 stb;
395+ struct stat stb;
396 int v;
397 char st[1024];
398 struct io_uring_sqe *sqe;
399@@ -2304,9 +2304,9 @@ do_uring_rw(opnum_t opno, long r, int fl
400 procid, opno, f.path, e);
401 goto uring_out;
402 }
403- if (fstat64(fd, &stb) < 0) {
404+ if (fstat(fd, &stb) < 0) {
405 if (v)
406- printf("%d/%lld: do_uring_rw - fstat64 %s failed %d\n",
407+ printf("%d/%lld: do_uring_rw - fstat %s failed %d\n",
408 procid, opno, f.path, errno);
409 goto uring_out;
410 }
411@@ -2522,7 +2522,7 @@ bulkstat1_f(opnum_t opno, long r)
412 int fd;
413 int good;
414 __u64 ino;
415- struct stat64 s;
416+ struct stat s;
417 struct xfs_bstat t;
418 int v;
419 struct xfs_fsop_bulkreq bsr;
420@@ -2534,7 +2534,7 @@ bulkstat1_f(opnum_t opno, long r)
421 init_pathname(&f);
422 if (!get_fname(FT_ANYm, r, &f, NULL, NULL, &v))
423 append_pathname(&f, ".");
424- ino = stat64_path(&f, &s) < 0 ? (ino64_t)r : s.st_ino;
425+ ino = stat_path(&f, &s) < 0 ? (ino64_t)r : s.st_ino;
426 check_cwd();
427 free_pathname(&f);
428 } else {
429@@ -2605,8 +2605,8 @@ clonerange_f(
430 struct file_clone_range fcr;
431 struct pathname fpath1;
432 struct pathname fpath2;
433- struct stat64 stat1;
434- struct stat64 stat2;
435+ struct stat stat1;
436+ struct stat stat2;
437 char inoinfo1[1024];
438 char inoinfo2[1024];
439 off64_t lr;
440@@ -2660,17 +2660,17 @@ clonerange_f(
441 }
442
443 /* Get file stats */
444- if (fstat64(fd1, &stat1) < 0) {
445+ if (fstat(fd1, &stat1) < 0) {
446 if (v1)
447- printf("%d/%lld: clonerange read - fstat64 %s failed %d\n",
448+ printf("%d/%lld: clonerange read - fstat %s failed %d\n",
449 procid, opno, fpath1.path, errno);
450 goto out_fd2;
451 }
452 inode_info(inoinfo1, sizeof(inoinfo1), &stat1, v1);
453
454- if (fstat64(fd2, &stat2) < 0) {
455+ if (fstat(fd2, &stat2) < 0) {
456 if (v2)
457- printf("%d/%lld: clonerange write - fstat64 %s failed %d\n",
458+ printf("%d/%lld: clonerange write - fstat %s failed %d\n",
459 procid, opno, fpath2.path, errno);
460 goto out_fd2;
461 }
462@@ -2743,8 +2743,8 @@ copyrange_f(
463 #ifdef HAVE_COPY_FILE_RANGE
464 struct pathname fpath1;
465 struct pathname fpath2;
466- struct stat64 stat1;
467- struct stat64 stat2;
468+ struct stat stat1;
469+ struct stat stat2;
470 char inoinfo1[1024];
471 char inoinfo2[1024];
472 loff_t lr;
473@@ -2802,17 +2802,17 @@ copyrange_f(
474 }
475
476 /* Get file stats */
477- if (fstat64(fd1, &stat1) < 0) {
478+ if (fstat(fd1, &stat1) < 0) {
479 if (v1)
480- printf("%d/%lld: copyrange read - fstat64 %s failed %d\n",
481+ printf("%d/%lld: copyrange read - fstat %s failed %d\n",
482 procid, opno, fpath1.path, errno);
483 goto out_fd2;
484 }
485 inode_info(inoinfo1, sizeof(inoinfo1), &stat1, v1);
486
487- if (fstat64(fd2, &stat2) < 0) {
488+ if (fstat(fd2, &stat2) < 0) {
489 if (v2)
490- printf("%d/%lld: copyrange write - fstat64 %s failed %d\n",
491+ printf("%d/%lld: copyrange write - fstat %s failed %d\n",
492 procid, opno, fpath2.path, errno);
493 goto out_fd2;
494 }
495@@ -2900,7 +2900,7 @@ deduperange_f(
496 #define INFO_SZ 1024
497 struct file_dedupe_range *fdr;
498 struct pathname *fpath;
499- struct stat64 *stat;
500+ struct stat *stat;
501 char *info;
502 off64_t *off;
503 int *v;
504@@ -2938,7 +2938,7 @@ deduperange_f(
505 goto out_fdr;
506 }
507
508- stat = calloc(nr, sizeof(struct stat64));
509+ stat = calloc(nr, sizeof(struct stat));
510 if (!stat) {
511 printf("%d/%lld: line %d error %d\n",
512 procid, opno, __LINE__, errno);
513@@ -3017,9 +3017,9 @@ deduperange_f(
514 }
515
516 /* Get file stats */
517- if (fstat64(fd[0], &stat[0]) < 0) {
518+ if (fstat(fd[0], &stat[0]) < 0) {
519 if (v[0])
520- printf("%d/%lld: deduperange read - fstat64 %s failed %d\n",
521+ printf("%d/%lld: deduperange read - fstat %s failed %d\n",
522 procid, opno, fpath[0].path, errno);
523 goto out_fds;
524 }
525@@ -3027,9 +3027,9 @@ deduperange_f(
526 inode_info(&info[0], INFO_SZ, &stat[0], v[0]);
527
528 for (i = 1; i < nr; i++) {
529- if (fstat64(fd[i], &stat[i]) < 0) {
530+ if (fstat(fd[i], &stat[i]) < 0) {
531 if (v[i])
532- printf("%d/%lld: deduperange write - fstat64 %s failed %d\n",
533+ printf("%d/%lld: deduperange write - fstat %s failed %d\n",
534 procid, opno, fpath[i].path, errno);
535 goto out_fds;
536 }
537@@ -3179,8 +3179,8 @@ splice_f(opnum_t opno, long r)
538 {
539 struct pathname fpath1;
540 struct pathname fpath2;
541- struct stat64 stat1;
542- struct stat64 stat2;
543+ struct stat stat1;
544+ struct stat stat2;
545 char inoinfo1[1024];
546 char inoinfo2[1024];
547 loff_t lr;
548@@ -3237,17 +3237,17 @@ splice_f(opnum_t opno, long r)
549 }
550
551 /* Get file stats */
552- if (fstat64(fd1, &stat1) < 0) {
553+ if (fstat(fd1, &stat1) < 0) {
554 if (v1)
555- printf("%d/%lld: splice read - fstat64 %s failed %d\n",
556+ printf("%d/%lld: splice read - fstat %s failed %d\n",
557 procid, opno, fpath1.path, errno);
558 goto out_fd2;
559 }
560 inode_info(inoinfo1, sizeof(inoinfo1), &stat1, v1);
561
562- if (fstat64(fd2, &stat2) < 0) {
563+ if (fstat(fd2, &stat2) < 0) {
564 if (v2)
565- printf("%d/%lld: splice write - fstat64 %s failed %d\n",
566+ printf("%d/%lld: splice write - fstat %s failed %d\n",
567 procid, opno, fpath2.path, errno);
568 goto out_fd2;
569 }
570@@ -3432,7 +3432,7 @@ dread_f(opnum_t opno, long r)
571 size_t len;
572 int64_t lr;
573 off64_t off;
574- struct stat64 stb;
575+ struct stat stb;
576 int v;
577 char st[1024];
578 char *dio_env;
579@@ -3454,9 +3454,9 @@ dread_f(opnum_t opno, long r)
580 free_pathname(&f);
581 return;
582 }
583- if (fstat64(fd, &stb) < 0) {
584+ if (fstat(fd, &stb) < 0) {
585 if (v)
586- printf("%d/%lld: dread - fstat64 %s failed %d\n",
587+ printf("%d/%lld: dread - fstat %s failed %d\n",
588 procid, opno, f.path, errno);
589 free_pathname(&f);
590 close(fd);
591@@ -3522,7 +3522,7 @@ dwrite_f(opnum_t opno, long r)
592 size_t len;
593 int64_t lr;
594 off64_t off;
595- struct stat64 stb;
596+ struct stat stb;
597 int v;
598 char st[1024];
599 char *dio_env;
600@@ -3544,9 +3544,9 @@ dwrite_f(opnum_t opno, long r)
601 free_pathname(&f);
602 return;
603 }
604- if (fstat64(fd, &stb) < 0) {
605+ if (fstat(fd, &stb) < 0) {
606 if (v)
607- printf("%d/%lld: dwrite - fstat64 %s failed %d\n",
608+ printf("%d/%lld: dwrite - fstat %s failed %d\n",
609 procid, opno, f.path, errno);
610 free_pathname(&f);
611 close(fd);
612@@ -3620,7 +3620,7 @@ do_fallocate(opnum_t opno, long r, int m
613 int64_t lr;
614 off64_t off;
615 off64_t len;
616- struct stat64 stb;
617+ struct stat stb;
618 int v;
619 char st[1024];
620
621@@ -3640,9 +3640,9 @@ do_fallocate(opnum_t opno, long r, int m
622 return;
623 }
624 check_cwd();
625- if (fstat64(fd, &stb) < 0) {
626+ if (fstat(fd, &stb) < 0) {
627 if (v)
628- printf("%d/%lld: do_fallocate - fstat64 %s failed %d\n",
629+ printf("%d/%lld: do_fallocate - fstat %s failed %d\n",
630 procid, opno, f.path, errno);
631 free_pathname(&f);
632 close(fd);
633@@ -3734,7 +3734,7 @@ fiemap_f(opnum_t opno, long r)
634 int fd;
635 int64_t lr;
636 off64_t off;
637- struct stat64 stb;
638+ struct stat stb;
639 int v;
640 char st[1024];
641 int blocks_to_map;
642@@ -3757,9 +3757,9 @@ fiemap_f(opnum_t opno, long r)
643 free_pathname(&f);
644 return;
645 }
646- if (fstat64(fd, &stb) < 0) {
647+ if (fstat(fd, &stb) < 0) {
648 if (v)
649- printf("%d/%lld: fiemap - fstat64 %s failed %d\n",
650+ printf("%d/%lld: fiemap - fstat %s failed %d\n",
651 procid, opno, f.path, errno);
652 free_pathname(&f);
653 close(fd);
654@@ -3807,7 +3807,7 @@ freesp_f(opnum_t opno, long r)
655 struct xfs_flock64 fl;
656 int64_t lr;
657 off64_t off;
658- struct stat64 stb;
659+ struct stat stb;
660 int v;
661 char st[1024];
662
663@@ -3828,9 +3828,9 @@ freesp_f(opnum_t opno, long r)
664 free_pathname(&f);
665 return;
666 }
667- if (fstat64(fd, &stb) < 0) {
668+ if (fstat(fd, &stb) < 0) {
669 if (v)
670- printf("%d/%lld: freesp - fstat64 %s failed %d\n",
671+ printf("%d/%lld: freesp - fstat %s failed %d\n",
672 procid, opno, f.path, errno);
673 free_pathname(&f);
674 close(fd);
675@@ -4226,7 +4226,7 @@ do_mmap(opnum_t opno, long r, int prot)
676 int64_t lr;
677 off64_t off;
678 int flags;
679- struct stat64 stb;
680+ struct stat stb;
681 int v;
682 char st[1024];
683 sigjmp_buf sigbus_jmpbuf;
684@@ -4248,9 +4248,9 @@ do_mmap(opnum_t opno, long r, int prot)
685 free_pathname(&f);
686 return;
687 }
688- if (fstat64(fd, &stb) < 0) {
689+ if (fstat(fd, &stb) < 0) {
690 if (v)
691- printf("%d/%lld: do_mmap - fstat64 %s failed %d\n",
692+ printf("%d/%lld: do_mmap - fstat %s failed %d\n",
693 procid, opno, f.path, errno);
694 free_pathname(&f);
695 close(fd);
696@@ -4370,7 +4370,7 @@ read_f(opnum_t opno, long r)
697 size_t len;
698 int64_t lr;
699 off64_t off;
700- struct stat64 stb;
701+ struct stat stb;
702 int v;
703 char st[1024];
704
705@@ -4391,9 +4391,9 @@ read_f(opnum_t opno, long r)
706 free_pathname(&f);
707 return;
708 }
709- if (fstat64(fd, &stb) < 0) {
710+ if (fstat(fd, &stb) < 0) {
711 if (v)
712- printf("%d/%lld: read - fstat64 %s failed %d\n",
713+ printf("%d/%lld: read - fstat %s failed %d\n",
714 procid, opno, f.path, errno);
715 free_pathname(&f);
716 close(fd);
717@@ -4454,7 +4454,7 @@ readv_f(opnum_t opno, long r)
718 size_t len;
719 int64_t lr;
720 off64_t off;
721- struct stat64 stb;
722+ struct stat stb;
723 int v;
724 char st[1024];
725 struct iovec *iov = NULL;
726@@ -4480,9 +4480,9 @@ readv_f(opnum_t opno, long r)
727 free_pathname(&f);
728 return;
729 }
730- if (fstat64(fd, &stb) < 0) {
731+ if (fstat(fd, &stb) < 0) {
732 if (v)
733- printf("%d/%lld: readv - fstat64 %s failed %d\n",
734+ printf("%d/%lld: readv - fstat %s failed %d\n",
735 procid, opno, f.path, errno);
736 free_pathname(&f);
737 close(fd);
738@@ -4739,7 +4739,7 @@ resvsp_f(opnum_t opno, long r)
739 struct xfs_flock64 fl;
740 int64_t lr;
741 off64_t off;
742- struct stat64 stb;
743+ struct stat stb;
744 int v;
745 char st[1024];
746
747@@ -4760,9 +4760,9 @@ resvsp_f(opnum_t opno, long r)
748 free_pathname(&f);
749 return;
750 }
751- if (fstat64(fd, &stb) < 0) {
752+ if (fstat(fd, &stb) < 0) {
753 if (v)
754- printf("%d/%lld: resvsp - fstat64 %s failed %d\n",
755+ printf("%d/%lld: resvsp - fstat %s failed %d\n",
756 procid, opno, f.path, errno);
757 free_pathname(&f);
758 close(fd);
759@@ -4971,7 +4971,7 @@ stat_f(opnum_t opno, long r)
760 {
761 int e;
762 pathname_t f;
763- struct stat64 stb;
764+ struct stat stb;
765 int v;
766
767 init_pathname(&f);
768@@ -4981,7 +4981,7 @@ stat_f(opnum_t opno, long r)
769 free_pathname(&f);
770 return;
771 }
772- e = lstat64_path(&f, &stb) < 0 ? errno : 0;
773+ e = lstat_path(&f, &stb) < 0 ? errno : 0;
774 check_cwd();
775 if (v)
776 printf("%d/%lld: stat %s %d\n", procid, opno, f.path, e);
777@@ -5133,7 +5133,7 @@ truncate_f(opnum_t opno, long r)
778 pathname_t f;
779 int64_t lr;
780 off64_t off;
781- struct stat64 stb;
782+ struct stat stb;
783 int v;
784 char st[1024];
785
786@@ -5144,11 +5144,11 @@ truncate_f(opnum_t opno, long r)
787 free_pathname(&f);
788 return;
789 }
790- e = stat64_path(&f, &stb) < 0 ? errno : 0;
791+ e = stat_path(&f, &stb) < 0 ? errno : 0;
792 check_cwd();
793 if (e > 0) {
794 if (v)
795- printf("%d/%lld: truncate - stat64 %s failed %d\n",
796+ printf("%d/%lld: truncate - stat %s failed %d\n",
797 procid, opno, f.path, e);
798 free_pathname(&f);
799 return;
800@@ -5157,7 +5157,7 @@ truncate_f(opnum_t opno, long r)
801 lr = ((int64_t)random() << 32) + random();
802 off = (off64_t)(lr % MIN(stb.st_size + (1024 * 1024), MAXFSIZE));
803 off %= maxfsize;
804- e = truncate64_path(&f, off) < 0 ? errno : 0;
805+ e = truncate_path(&f, off) < 0 ? errno : 0;
806 check_cwd();
807 if (v)
808 printf("%d/%lld: truncate %s%s %lld %d\n", procid, opno, f.path,
809@@ -5209,7 +5209,7 @@ unresvsp_f(opnum_t opno, long r)
810 struct xfs_flock64 fl;
811 int64_t lr;
812 off64_t off;
813- struct stat64 stb;
814+ struct stat stb;
815 int v;
816 char st[1024];
817
818@@ -5230,9 +5230,9 @@ unresvsp_f(opnum_t opno, long r)
819 free_pathname(&f);
820 return;
821 }
822- if (fstat64(fd, &stb) < 0) {
823+ if (fstat(fd, &stb) < 0) {
824 if (v)
825- printf("%d/%lld: unresvsp - fstat64 %s failed %d\n",
826+ printf("%d/%lld: unresvsp - fstat %s failed %d\n",
827 procid, opno, f.path, errno);
828 free_pathname(&f);
829 close(fd);
830@@ -5281,7 +5281,7 @@ write_f(opnum_t opno, long r)
831 size_t len;
832 int64_t lr;
833 off64_t off;
834- struct stat64 stb;
835+ struct stat stb;
836 int v;
837 char st[1024];
838
839@@ -5302,9 +5302,9 @@ write_f(opnum_t opno, long r)
840 free_pathname(&f);
841 return;
842 }
843- if (fstat64(fd, &stb) < 0) {
844+ if (fstat(fd, &stb) < 0) {
845 if (v)
846- printf("%d/%lld: write - fstat64 %s failed %d\n",
847+ printf("%d/%lld: write - fstat %s failed %d\n",
848 procid, opno, f.path, errno);
849 free_pathname(&f);
850 close(fd);
851@@ -5337,7 +5337,7 @@ writev_f(opnum_t opno, long r)
852 size_t len;
853 int64_t lr;
854 off64_t off;
855- struct stat64 stb;
856+ struct stat stb;
857 int v;
858 char st[1024];
859 struct iovec *iov = NULL;
860@@ -5363,9 +5363,9 @@ writev_f(opnum_t opno, long r)
861 free_pathname(&f);
862 return;
863 }
864- if (fstat64(fd, &stb) < 0) {
865+ if (fstat(fd, &stb) < 0) {
866 if (v)
867- printf("%d/%lld: writev - fstat64 %s failed %d\n",
868+ printf("%d/%lld: writev - fstat %s failed %d\n",
869 procid, opno, f.path, errno);
870 free_pathname(&f);
871 close(fd);
872--- a/tests/fssum.c
873+++ b/tests/fssum.c
874@@ -519,9 +519,9 @@ sum(int dirfd, int level, sum_t *dircs,
875 int excl;
876 sum_file_data_t sum_file_data = flags[FLAG_STRUCTURE] ?
877 sum_file_data_strict : sum_file_data_permissive;
878- struct stat64 dir_st;
879+ struct stat dir_st;
880
881- if (fstat64(dirfd, &dir_st)) {
882+ if (fstat(dirfd, &dir_st)) {
883 perror("fstat");
884 exit(-1);
885 }
886@@ -552,7 +552,7 @@ sum(int dirfd, int level, sum_t *dircs,
887 }
888 qsort(namelist, entries, sizeof(*namelist), namecmp);
889 for (i = 0; i < entries; ++i) {
890- struct stat64 st;
891+ struct stat st;
892 sum_t cs;
893 sum_t meta;
894 char *path;
895@@ -572,7 +572,7 @@ sum(int dirfd, int level, sum_t *dircs,
896 perror("fchdir");
897 exit(-1);
898 }
899- ret = lstat64(namelist[i], &st);
900+ ret = lstat(namelist[i], &st);
901 if (ret) {
902 fprintf(stderr, "stat failed for %s/%s: %m\n",
903 path_prefix, path);
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.2.bb b/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.2.bb
index 872fba6b6d..aa48422080 100644
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.2.bb
+++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.0.2.bb
@@ -17,6 +17,7 @@ DEPENDS = "util-linux zlib"
17 17
18SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master \ 18SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master \
19 file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ 19 file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
20 file://0001-Use-pread-pwrite-ftruncate-stat-instead-of-64bit-equ.patch \
20 " 21 "
21SRCREV = "ff964ba6aef98bd1bafe8ff9b0088501b30bdd27" 22SRCREV = "ff964ba6aef98bd1bafe8ff9b0088501b30bdd27"
22S = "${WORKDIR}/git" 23S = "${WORKDIR}/git"