| From 2ccefd4aff98cf355c7d13b3f92bb4d390dfa522 Mon Sep 17 00:00:00 2001 |
| From: Tino Reichardt <milky-zfs@mcmilk.de> |
| Date: Sun, 4 Aug 2024 11:58:13 +0200 |
| Subject: [PATCH] ZTS: small fix for SEEK_DATA/SEEK_HOLE tests |
| |
| Some libc's like uClibc lag the proper definition of SEEK_DATA |
| and SEEK_HOLE. Since we have only two files in ZTS which use |
| these definitons, let's define them by hand: |
| |
| ``` |
| #ifndef SEEK_DATA |
| #define SEEK_DATA 3 |
| #endif |
| #ifndef SEEK_HOLE |
| #define SEEK_HOLE 4 |
| #endif |
| ``` |
| |
| There should be no failures, because: |
| - FreeBSD has support for SEEK_DATA/SEEK_HOLE since FreeBSD 8 |
| - Linux has it since Linux 3.1 |
| - the libc will submit the parameters unchanged to the kernel |
| |
| Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de> |
| Signed-off-by: José Luis Salvador Rufo <salvador.joseluis@gmail.com> |
| Upstream: https://github.com/openzfs/zfs/commit/bd949b10bed3d99e3b40249d9c8d74a0b4304774 |
| --- |
| tests/zfs-tests/cmd/mmap_seek.c | 10 ++++++++++ |
| tests/zfs-tests/tests/functional/cp_files/seekflood.c | 7 +++++++ |
| 2 files changed, 17 insertions(+) |
| |
| diff --git a/tests/zfs-tests/cmd/mmap_seek.c b/tests/zfs-tests/cmd/mmap_seek.c |
| index 7be92d109565..2d250554a13f 100644 |
| --- a/tests/zfs-tests/cmd/mmap_seek.c |
| +++ b/tests/zfs-tests/cmd/mmap_seek.c |
| @@ -35,6 +35,16 @@ |
| #include <linux/fs.h> |
| #endif |
| |
| +/* some older uClibc's lack the defines, so we'll manually define them */ |
| +#ifdef __UCLIBC__ |
| +#ifndef SEEK_DATA |
| +#define SEEK_DATA 3 |
| +#endif |
| +#ifndef SEEK_HOLE |
| +#define SEEK_HOLE 4 |
| +#endif |
| +#endif |
| + |
| static void |
| seek_data(int fd, off_t offset, off_t expected) |
| { |
| diff --git a/tests/zfs-tests/tests/functional/cp_files/seekflood.c b/tests/zfs-tests/tests/functional/cp_files/seekflood.c |
| index 02c2c8e6eca5..f832db85970d 100644 |
| --- a/tests/zfs-tests/tests/functional/cp_files/seekflood.c |
| +++ b/tests/zfs-tests/tests/functional/cp_files/seekflood.c |
| @@ -36,6 +36,13 @@ |
| #include <sys/stat.h> |
| #include <sys/wait.h> |
| |
| +/* some older uClibc's lack the defines, so we'll manually define them */ |
| +#ifdef __UCLIBC__ |
| +#ifndef SEEK_DATA |
| +#define SEEK_DATA 3 |
| +#endif |
| +#endif |
| + |
| #define DATASIZE (4096) |
| char data[DATASIZE]; |
| |