Blame SOURCES/0001-fio-remove-raw-device-support.patch

d6ab0e
From 382975557e632efb506836bc1709789e615c9094 Mon Sep 17 00:00:00 2001
d6ab0e
From: Eric Sandeen <esandeen@redhat.com>
d6ab0e
Date: Tue, 3 Aug 2021 10:23:35 -0700
d6ab0e
Subject: [PATCH] fio: remove raw device support
d6ab0e
d6ab0e
As of Linux kernel commit 603e4922f1c ("remove the raw driver"),
d6ab0e
linux/raw.h is gone, and raw device support no longer exists.
d6ab0e
Because of this, fio can no longer build against the current Linux
d6ab0e
kernel headers.
d6ab0e
d6ab0e
So, remove raw device support from fio as well.
d6ab0e
d6ab0e
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
d6ab0e
Signed-off-by: Jens Axboe <axboe@kernel.dk>
d6ab0e
---
d6ab0e
 diskutil.c    | 10 +++-------
d6ab0e
 fio.1         |  4 +---
d6ab0e
 os/os-linux.h | 32 --------------------------------
d6ab0e
 os/os.h       |  4 ----
d6ab0e
 4 files changed, 4 insertions(+), 46 deletions(-)
d6ab0e
d6ab0e
diff --git a/diskutil.c b/diskutil.c
d6ab0e
index 0051a7a0..ace7af3d 100644
d6ab0e
--- a/diskutil.c
d6ab0e
+++ b/diskutil.c
d6ab0e
@@ -166,14 +166,10 @@ static int get_device_numbers(char *file_name, int *maj, int *min)
d6ab0e
 		if (S_ISBLK(st.st_mode)) {
d6ab0e
 			majdev = major(st.st_rdev);
d6ab0e
 			mindev = minor(st.st_rdev);
d6ab0e
-		} else if (S_ISCHR(st.st_mode)) {
d6ab0e
-			majdev = major(st.st_rdev);
d6ab0e
-			mindev = minor(st.st_rdev);
d6ab0e
-			if (fio_lookup_raw(st.st_rdev, &majdev, &mindev))
d6ab0e
-				return -1;
d6ab0e
-		} else if (S_ISFIFO(st.st_mode))
d6ab0e
+		} else if (S_ISCHR(st.st_mode) ||
d6ab0e
+			   S_ISFIFO(st.st_mode)) {
d6ab0e
 			return -1;
d6ab0e
-		else {
d6ab0e
+		} else {
d6ab0e
 			majdev = major(st.st_dev);
d6ab0e
 			mindev = minor(st.st_dev);
d6ab0e
 		}
d6ab0e
diff --git a/fio.1 b/fio.1
d6ab0e
index 6cc82542..9c12ad13 100644
d6ab0e
--- a/fio.1
d6ab0e
+++ b/fio.1
d6ab0e
@@ -1700,9 +1700,7 @@ Sets size to something really large and waits for ENOSPC (no space left on
d6ab0e
 device) or EDQUOT (disk quota exceeded)
d6ab0e
 as the terminating condition. Only makes sense with sequential
d6ab0e
 write. For a read workload, the mount point will be filled first then I/O
d6ab0e
-started on the result. This option doesn't make sense if operating on a raw
d6ab0e
-device node, since the size of that is already known by the file system.
d6ab0e
-Additionally, writing beyond end-of-device will not return ENOSPC there.
d6ab0e
+started on the result.
d6ab0e
 .SS "I/O engine"
d6ab0e
 .TP
d6ab0e
 .BI ioengine \fR=\fPstr
d6ab0e
diff --git a/os/os-linux.h b/os/os-linux.h
d6ab0e
index f7137abe..16ed5258 100644
d6ab0e
--- a/os/os-linux.h
d6ab0e
+++ b/os/os-linux.h
d6ab0e
@@ -14,7 +14,6 @@
d6ab0e
 #include <errno.h>
d6ab0e
 #include <sched.h>
d6ab0e
 #include <linux/unistd.h>
d6ab0e
-#include <linux/raw.h>
d6ab0e
 #include <linux/major.h>
d6ab0e
 #include <linux/fs.h>
d6ab0e
 #include <scsi/sg.h>
d6ab0e
@@ -41,7 +40,6 @@
d6ab0e
 #define FIO_HAVE_IOSCHED_SWITCH
d6ab0e
 #define FIO_HAVE_ODIRECT
d6ab0e
 #define FIO_HAVE_HUGETLB
d6ab0e
-#define FIO_HAVE_RAWBIND
d6ab0e
 #define FIO_HAVE_BLKTRACE
d6ab0e
 #define FIO_HAVE_CL_SIZE
d6ab0e
 #define FIO_HAVE_CGROUPS
d6ab0e
@@ -178,36 +176,6 @@ static inline unsigned long long os_phys_mem(void)
d6ab0e
 	return (unsigned long long) pages * (unsigned long long) pagesize;
d6ab0e
 }
d6ab0e
 
d6ab0e
-static inline int fio_lookup_raw(dev_t dev, int *majdev, int *mindev)
d6ab0e
-{
d6ab0e
-	struct raw_config_request rq;
d6ab0e
-	int fd;
d6ab0e
-
d6ab0e
-	if (major(dev) != RAW_MAJOR)
d6ab0e
-		return 1;
d6ab0e
-
d6ab0e
-	/*
d6ab0e
-	 * we should be able to find /dev/rawctl or /dev/raw/rawctl
d6ab0e
-	 */
d6ab0e
-	fd = open("/dev/rawctl", O_RDONLY);
d6ab0e
-	if (fd < 0) {
d6ab0e
-		fd = open("/dev/raw/rawctl", O_RDONLY);
d6ab0e
-		if (fd < 0)
d6ab0e
-			return 1;
d6ab0e
-	}
d6ab0e
-
d6ab0e
-	rq.raw_minor = minor(dev);
d6ab0e
-	if (ioctl(fd, RAW_GETBIND, &rq) < 0) {
d6ab0e
-		close(fd);
d6ab0e
-		return 1;
d6ab0e
-	}
d6ab0e
-
d6ab0e
-	close(fd);
d6ab0e
-	*majdev = rq.block_major;
d6ab0e
-	*mindev = rq.block_minor;
d6ab0e
-	return 0;
d6ab0e
-}
d6ab0e
-
d6ab0e
 #ifdef O_NOATIME
d6ab0e
 #define FIO_O_NOATIME	O_NOATIME
d6ab0e
 #else
d6ab0e
diff --git a/os/os.h b/os/os.h
d6ab0e
index e47d3d97..17daf91d 100644
d6ab0e
--- a/os/os.h
d6ab0e
+++ b/os/os.h
d6ab0e
@@ -157,10 +157,6 @@ extern int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu);
d6ab0e
 #define OS_RAND_MAX			RAND_MAX
d6ab0e
 #endif
d6ab0e
 
d6ab0e
-#ifndef FIO_HAVE_RAWBIND
d6ab0e
-#define fio_lookup_raw(dev, majdev, mindev)	1
d6ab0e
-#endif
d6ab0e
-
d6ab0e
 #ifndef FIO_PREFERRED_ENGINE
d6ab0e
 #define FIO_PREFERRED_ENGINE	"psync"
d6ab0e
 #endif
d6ab0e
-- 
d6ab0e
2.17.0
d6ab0e