diff --git a/.gitignore b/.gitignore index 7b6863f..89dd94d 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,5 @@ /fio-3.26.tar.bz2 /fio-3.27.tar.bz2 /fio-3.27.tar.bz2.asc +/fio-3.28.tar.bz2 +/fio-3.28.tar.bz2.asc diff --git a/0001-fio-remove-raw-device-support.patch b/0001-fio-remove-raw-device-support.patch deleted file mode 100644 index 177f80d..0000000 --- a/0001-fio-remove-raw-device-support.patch +++ /dev/null @@ -1,133 +0,0 @@ -From 382975557e632efb506836bc1709789e615c9094 Mon Sep 17 00:00:00 2001 -From: Eric Sandeen -Date: Tue, 3 Aug 2021 10:23:35 -0700 -Subject: [PATCH] fio: remove raw device support - -As of Linux kernel commit 603e4922f1c ("remove the raw driver"), -linux/raw.h is gone, and raw device support no longer exists. -Because of this, fio can no longer build against the current Linux -kernel headers. - -So, remove raw device support from fio as well. - -Signed-off-by: Eric Sandeen -Signed-off-by: Jens Axboe ---- - diskutil.c | 10 +++------- - fio.1 | 4 +--- - os/os-linux.h | 32 -------------------------------- - os/os.h | 4 ---- - 4 files changed, 4 insertions(+), 46 deletions(-) - -diff --git a/diskutil.c b/diskutil.c -index 0051a7a0..ace7af3d 100644 ---- a/diskutil.c -+++ b/diskutil.c -@@ -166,14 +166,10 @@ static int get_device_numbers(char *file_name, int *maj, int *min) - if (S_ISBLK(st.st_mode)) { - majdev = major(st.st_rdev); - mindev = minor(st.st_rdev); -- } else if (S_ISCHR(st.st_mode)) { -- majdev = major(st.st_rdev); -- mindev = minor(st.st_rdev); -- if (fio_lookup_raw(st.st_rdev, &majdev, &mindev)) -- return -1; -- } else if (S_ISFIFO(st.st_mode)) -+ } else if (S_ISCHR(st.st_mode) || -+ S_ISFIFO(st.st_mode)) { - return -1; -- else { -+ } else { - majdev = major(st.st_dev); - mindev = minor(st.st_dev); - } -diff --git a/fio.1 b/fio.1 -index 6cc82542..9c12ad13 100644 ---- a/fio.1 -+++ b/fio.1 -@@ -1700,9 +1700,7 @@ Sets size to something really large and waits for ENOSPC (no space left on - device) or EDQUOT (disk quota exceeded) - as the terminating condition. Only makes sense with sequential - write. For a read workload, the mount point will be filled first then I/O --started on the result. This option doesn't make sense if operating on a raw --device node, since the size of that is already known by the file system. --Additionally, writing beyond end-of-device will not return ENOSPC there. -+started on the result. - .SS "I/O engine" - .TP - .BI ioengine \fR=\fPstr -diff --git a/os/os-linux.h b/os/os-linux.h -index f7137abe..16ed5258 100644 ---- a/os/os-linux.h -+++ b/os/os-linux.h -@@ -14,7 +14,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -41,7 +40,6 @@ - #define FIO_HAVE_IOSCHED_SWITCH - #define FIO_HAVE_ODIRECT - #define FIO_HAVE_HUGETLB --#define FIO_HAVE_RAWBIND - #define FIO_HAVE_BLKTRACE - #define FIO_HAVE_CL_SIZE - #define FIO_HAVE_CGROUPS -@@ -178,36 +176,6 @@ static inline unsigned long long os_phys_mem(void) - return (unsigned long long) pages * (unsigned long long) pagesize; - } - --static inline int fio_lookup_raw(dev_t dev, int *majdev, int *mindev) --{ -- struct raw_config_request rq; -- int fd; -- -- if (major(dev) != RAW_MAJOR) -- return 1; -- -- /* -- * we should be able to find /dev/rawctl or /dev/raw/rawctl -- */ -- fd = open("/dev/rawctl", O_RDONLY); -- if (fd < 0) { -- fd = open("/dev/raw/rawctl", O_RDONLY); -- if (fd < 0) -- return 1; -- } -- -- rq.raw_minor = minor(dev); -- if (ioctl(fd, RAW_GETBIND, &rq) < 0) { -- close(fd); -- return 1; -- } -- -- close(fd); -- *majdev = rq.block_major; -- *mindev = rq.block_minor; -- return 0; --} -- - #ifdef O_NOATIME - #define FIO_O_NOATIME O_NOATIME - #else -diff --git a/os/os.h b/os/os.h -index e47d3d97..17daf91d 100644 ---- a/os/os.h -+++ b/os/os.h -@@ -157,10 +157,6 @@ extern int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu); - #define OS_RAND_MAX RAND_MAX - #endif - --#ifndef FIO_HAVE_RAWBIND --#define fio_lookup_raw(dev, majdev, mindev) 1 --#endif -- - #ifndef FIO_PREFERRED_ENGINE - #define FIO_PREFERRED_ENGINE "psync" - #endif --- -2.31.1 - diff --git a/0001-ioengines-fix-crash-with-enghelp-option.patch b/0001-ioengines-fix-crash-with-enghelp-option.patch deleted file mode 100644 index 7d289cb..0000000 --- a/0001-ioengines-fix-crash-with-enghelp-option.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 2459bd33b3dbb7a34f28c612d595311a6bc7593d Mon Sep 17 00:00:00 2001 -From: Vincent Fu -Date: Wed, 4 Aug 2021 18:29:05 +0000 -Subject: [PATCH] ioengines: fix crash with --enghelp option - -Since f6931a1dd35896433c8cc2e10de51372a2c496c4 commands like the -following segfault: - -fio --enghelp=sg -fio --enghelp=sg,sg_write_mode - -This is because free_ioengine() assumes that td->io_ops is not NULL. -Make this true when free_ioengine() is called by -fio_show_ioengine_help() to avoid the crash. - -Signed-off-by: Vincent Fu -Signed-off-by: Jens Axboe ---- - ioengines.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/ioengines.c b/ioengines.c -index dd61af07..d08a511a 100644 ---- a/ioengines.c -+++ b/ioengines.c -@@ -692,17 +692,17 @@ int fio_show_ioengine_help(const char *engine) - } - - td.o.ioengine = (char *)engine; -- io_ops = load_ioengine(&td); -+ td.io_ops = load_ioengine(&td); - -- if (!io_ops) { -+ if (!td.io_ops) { - log_info("IO engine %s not found\n", engine); - return 1; - } - -- if (io_ops->options) -- ret = show_cmd_help(io_ops->options, sep); -+ if (td.io_ops->options) -+ ret = show_cmd_help(td.io_ops->options, sep); - else -- log_info("IO engine %s has no options\n", io_ops->name); -+ log_info("IO engine %s has no options\n", td.io_ops->name); - - free_ioengine(&td); - return ret; --- -2.31.1 - diff --git a/fio.spec b/fio.spec index b4feb09..e71421d 100644 --- a/fio.spec +++ b/fio.spec @@ -1,6 +1,6 @@ Name: fio -Version: 3.27 -Release: 3%{?dist} +Version: 3.28 +Release: 1%{?dist} Summary: Multithreaded IO generation tool License: GPLv2 @@ -9,9 +9,6 @@ Source0: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2 Source1: https://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2.asc Source2: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/plain/keys/F7D358FB2971E0A6.asc -Patch0: 0001-fio-remove-raw-device-support.patch -Patch1: 0001-ioengines-fix-crash-with-enghelp-option.patch - BuildRequires: gcc BuildRequires: gnupg2 BuildRequires: libaio-devel @@ -214,6 +211,9 @@ make install prefix=%{_prefix} mandir=%{_mandir} libdir=%{_libdir}/fio DESTDIR=$ %endif %changelog +* Thu Sep 092021 Eric Sandeen 3.28-1 +- New upstream version + * Mon Aug 23 2021 Eric Sandeen 3.27-3 - Fix FTBFS for new kernel headers (raw device support is gone) - Fix crash with --enghelp option diff --git a/sources b/sources index 3ef0d0e..ba9142c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (fio-3.27.tar.bz2) = 9c5f2ab0c9ac24ab78dbc74fb6c5acd60f8189fdc618f4280992141b6c0abe1c235c373fee18ad0c803e7fb25d480f45aec56dc3be2e0d26d181b3418b179f99 -SHA512 (fio-3.27.tar.bz2.asc) = 958cc9fac3e55975c82d8ae166be35978854b68b821e137b92132cc1ea991f9cd1b48f7536cecc65876e82b9632a1b47eb3affbe1771d307bc175dcc774d2174 +SHA512 (fio-3.28.tar.bz2) = 1f6d125ad22bfb5b64e850c8efa220a8d9bed3ec5294323fdbb74321f8ba23f3e13e8d98a14be82851ee2d9704846a1d1d5ce256859b21fdffaed193a9210318 +SHA512 (fio-3.28.tar.bz2.asc) = 34c17f27546eabfc57b14698bddce5a2d59f6ad575e1c6bbdcc9e518a772a2e9d67ddf5ea378e91d8f916cb861970183d20c6627f8f04d9b0826ae979795731b