[PATCH 4/8] selftests: ublk: move common code into common.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Move two functions for initializing & de-initializing backing file
into common.c.

Also move one common helper into kublk.h.

Prepare for supporting ublk-stripe.

Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx>
---
 tools/testing/selftests/ublk/Makefile      |  2 +-
 tools/testing/selftests/ublk/common.c      | 55 ++++++++++++++++++++++
 tools/testing/selftests/ublk/file_backed.c | 52 --------------------
 tools/testing/selftests/ublk/kublk.h       |  2 +
 4 files changed, 58 insertions(+), 53 deletions(-)
 create mode 100644 tools/testing/selftests/ublk/common.c

diff --git a/tools/testing/selftests/ublk/Makefile b/tools/testing/selftests/ublk/Makefile
index 652ab40adb73..03dae5184d08 100644
--- a/tools/testing/selftests/ublk/Makefile
+++ b/tools/testing/selftests/ublk/Makefile
@@ -18,7 +18,7 @@ TEST_GEN_PROGS_EXTENDED = kublk
 
 include ../lib.mk
 
-$(TEST_GEN_PROGS_EXTENDED): kublk.c null.c file_backed.c
+$(TEST_GEN_PROGS_EXTENDED): kublk.c null.c file_backed.c common.c
 
 check:
 	shellcheck -x -f gcc *.sh
diff --git a/tools/testing/selftests/ublk/common.c b/tools/testing/selftests/ublk/common.c
new file mode 100644
index 000000000000..01580a6f8519
--- /dev/null
+++ b/tools/testing/selftests/ublk/common.c
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include "kublk.h"
+
+void backing_file_tgt_deinit(struct ublk_dev *dev)
+{
+	int i;
+
+	for (i = 1; i < dev->nr_fds; i++) {
+		fsync(dev->fds[i]);
+		close(dev->fds[i]);
+	}
+}
+
+int backing_file_tgt_init(struct ublk_dev *dev)
+{
+	int fd, i;
+
+	assert(dev->nr_fds == 1);
+
+	for (i = 0; i < dev->tgt.nr_backing_files; i++) {
+		char *file = dev->tgt.backing_file[i];
+		unsigned long bytes;
+		struct stat st;
+
+		ublk_dbg(UBLK_DBG_DEV, "%s: file %d: %s\n", __func__, i, file);
+
+		fd = open(file, O_RDWR | O_DIRECT);
+		if (fd < 0) {
+			ublk_err("%s: backing file %s can't be opened: %s\n",
+					__func__, file, strerror(errno));
+			return -EBADF;
+		}
+
+		if (fstat(fd, &st) < 0) {
+			close(fd);
+			return -EBADF;
+		}
+
+		if (S_ISREG(st.st_mode))
+			bytes = st.st_size;
+		else if (S_ISBLK(st.st_mode)) {
+			if (ioctl(fd, BLKGETSIZE64, &bytes) != 0)
+				return -1;
+		} else {
+			return -EINVAL;
+		}
+
+		dev->tgt.backing_file_size[i] = bytes;
+		dev->fds[dev->nr_fds] = fd;
+		dev->nr_fds += 1;
+	}
+
+	return 0;
+}
diff --git a/tools/testing/selftests/ublk/file_backed.c b/tools/testing/selftests/ublk/file_backed.c
index f58fa4ec9b51..a2e8793390a8 100644
--- a/tools/testing/selftests/ublk/file_backed.c
+++ b/tools/testing/selftests/ublk/file_backed.c
@@ -2,58 +2,6 @@
 
 #include "kublk.h"
 
-static void backing_file_tgt_deinit(struct ublk_dev *dev)
-{
-	int i;
-
-	for (i = 1; i < dev->nr_fds; i++) {
-		fsync(dev->fds[i]);
-		close(dev->fds[i]);
-	}
-}
-
-static int backing_file_tgt_init(struct ublk_dev *dev)
-{
-	int fd, i;
-
-	assert(dev->nr_fds == 1);
-
-	for (i = 0; i < dev->tgt.nr_backing_files; i++) {
-		char *file = dev->tgt.backing_file[i];
-		unsigned long bytes;
-		struct stat st;
-
-		ublk_dbg(UBLK_DBG_DEV, "%s: file %d: %s\n", __func__, i, file);
-
-		fd = open(file, O_RDWR | O_DIRECT);
-		if (fd < 0) {
-			ublk_err("%s: backing file %s can't be opened: %s\n",
-					__func__, file, strerror(errno));
-			return -EBADF;
-		}
-
-		if (fstat(fd, &st) < 0) {
-			close(fd);
-			return -EBADF;
-		}
-
-		if (S_ISREG(st.st_mode))
-			bytes = st.st_size;
-		else if (S_ISBLK(st.st_mode)) {
-			if (ioctl(fd, BLKGETSIZE64, &bytes) != 0)
-				return -1;
-		} else {
-			return -EINVAL;
-		}
-
-		dev->tgt.backing_file_size[i] = bytes;
-		dev->fds[dev->nr_fds] = fd;
-		dev->nr_fds += 1;
-	}
-
-	return 0;
-}
-
 static enum io_uring_op ublk_to_uring_op(const struct ublksrv_io_desc *iod, int zc)
 {
 	unsigned ublk_op = ublksrv_get_op(iod);
diff --git a/tools/testing/selftests/ublk/kublk.h b/tools/testing/selftests/ublk/kublk.h
index 40b89dcf0704..eaadd7364e25 100644
--- a/tools/testing/selftests/ublk/kublk.h
+++ b/tools/testing/selftests/ublk/kublk.h
@@ -320,4 +320,6 @@ static inline int ublk_queue_use_zc(const struct ublk_queue *q)
 extern const struct ublk_tgt_ops null_tgt_ops;
 extern const struct ublk_tgt_ops loop_tgt_ops;
 
+void backing_file_tgt_deinit(struct ublk_dev *dev);
+int backing_file_tgt_init(struct ublk_dev *dev);
 #endif
-- 
2.47.0





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux