ZTS: small fix for SEEK_DATA/SEEK_HOLE tests (#16413)

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>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Tino Reichardt 2024-08-07 18:52:37 +02:00 committed by GitHub
parent cbcb522439
commit bd949b10be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 0 deletions

View File

@ -35,6 +35,16 @@
#include <linux/fs.h> #include <linux/fs.h>
#endif #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 static void
seek_data(int fd, off_t offset, off_t expected) seek_data(int fd, off_t offset, off_t expected)
{ {

View File

@ -36,6 +36,13 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/wait.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) #define DATASIZE (4096)
char data[DATASIZE]; char data[DATASIZE];