File fio-remove-raw-device-support.patch of Package fio

From 382975557e632efb506836bc1709789e615c9094 Mon Sep 17 00:00:00 2001
From: Eric Sandeen <esandeen@redhat.com>
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 <sandeen@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
---
 diskutil.c    | 10 +++-------
 fio.1         |  4 +---
 os/os-linux.h | 32 --------------------------------
 os/os.h       |  4 ----
 4 files changed, 4 insertions(+), 46 deletions(-)

Index: fio-3.23/diskutil.c
===================================================================
--- fio-3.23.orig/diskutil.c
+++ fio-3.23/diskutil.c
@@ -166,14 +166,10 @@ static int get_device_numbers(char *file
 		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);
 		}
Index: fio-3.23/fio.1
===================================================================
--- fio-3.23.orig/fio.1
+++ fio-3.23/fio.1
@@ -1580,9 +1580,7 @@ of a file. This option is ignored on non
 Sets size to something really large and waits for ENOSPC (no space left on
 device) 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
Index: fio-3.23/os/os-linux.h
===================================================================
--- fio-3.23.orig/os/os-linux.h
+++ fio-3.23/os/os-linux.h
@@ -14,7 +14,6 @@
 #include <errno.h>
 #include <sched.h>
 #include <linux/unistd.h>
-#include <linux/raw.h>
 #include <linux/major.h>
 #include <linux/fs.h>
 #include <scsi/sg.h>
@@ -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
@@ -172,36 +170,6 @@ static inline unsigned long long os_phys
 	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
Index: fio-3.23/os/os.h
===================================================================
--- fio-3.23.orig/os/os.h
+++ fio-3.23/os/os.h
@@ -152,10 +152,6 @@ extern int fio_cpus_split(os_cpu_mask_t
 #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
openSUSE Build Service is sponsored by