2020-04-29 07:48:23

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH v3 2/6] block: move main block debugfs initialization to its own file

make_request-based drivers and and request-based drivers share some
debugfs code. By moving this into its own file it makes it easier
to expand and audit this shared code.

This patch contains no functional changes.

Cc: Bart Van Assche <[email protected]>
Cc: Omar Sandoval <[email protected]>
Cc: Hannes Reinecke <[email protected]>
Cc: Nicolai Stange <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Michal Hocko <[email protected]>
Cc: yu kuai <[email protected]>
Reviewed-by: Greg Kroah-Hartman <[email protected]>
Reviewed-by: Bart Van Assche <[email protected]>
Signed-off-by: Luis Chamberlain <[email protected]>
---
block/Makefile | 1 +
block/blk-core.c | 9 +--------
block/blk-debugfs.c | 15 +++++++++++++++
block/blk.h | 7 +++++++
4 files changed, 24 insertions(+), 8 deletions(-)
create mode 100644 block/blk-debugfs.c

diff --git a/block/Makefile b/block/Makefile
index 206b96e9387f..1d3ab20505d8 100644
--- a/block/Makefile
+++ b/block/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_BLOCK) := bio.o elevator.o blk-core.o blk-sysfs.o \
blk-mq-sysfs.o blk-mq-cpumap.o blk-mq-sched.o ioctl.o \
genhd.o ioprio.o badblocks.o partitions/ blk-rq-qos.o

+obj-$(CONFIG_DEBUG_FS) += blk-debugfs.o
obj-$(CONFIG_BOUNCE) += bounce.o
obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_ioctl.o
obj-$(CONFIG_BLK_DEV_BSG) += bsg.o
diff --git a/block/blk-core.c b/block/blk-core.c
index 8a27c772982e..4b26f686e249 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -49,10 +49,6 @@
#include "blk-pm.h"
#include "blk-rq-qos.h"

-#ifdef CONFIG_DEBUG_FS
-struct dentry *blk_debugfs_root;
-#endif
-
EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_remap);
EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_remap);
EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_complete);
@@ -1828,10 +1824,7 @@ int __init blk_dev_init(void)

blk_requestq_cachep = kmem_cache_create("request_queue",
sizeof(struct request_queue), 0, SLAB_PANIC, NULL);
-
-#ifdef CONFIG_DEBUG_FS
- blk_debugfs_root = debugfs_create_dir("block", NULL);
-#endif
+ blk_debugfs_register();

return 0;
}
diff --git a/block/blk-debugfs.c b/block/blk-debugfs.c
new file mode 100644
index 000000000000..19091e1effc0
--- /dev/null
+++ b/block/blk-debugfs.c
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/*
+ * Shared request-based / make_request-based functionality
+ */
+#include <linux/kernel.h>
+#include <linux/blkdev.h>
+#include <linux/debugfs.h>
+
+struct dentry *blk_debugfs_root;
+
+void blk_debugfs_register(void)
+{
+ blk_debugfs_root = debugfs_create_dir("block", NULL);
+}
diff --git a/block/blk.h b/block/blk.h
index 73bd3b1c6938..ec16e8a6049e 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -456,5 +456,12 @@ struct request_queue *__blk_alloc_queue(int node_id);
int __bio_add_pc_page(struct request_queue *q, struct bio *bio,
struct page *page, unsigned int len, unsigned int offset,
bool *same_page);
+#ifdef CONFIG_DEBUG_FS
+void blk_debugfs_register(void);
+#else
+static inline void blk_debugfs_register(void)
+{
+}
+#endif /* CONFIG_DEBUG_FS */

#endif /* BLK_INTERNAL_H */
--
2.25.1


2020-04-29 11:18:06

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH v3 2/6] block: move main block debugfs initialization to its own file

On Wed, Apr 29, 2020 at 07:46:23AM +0000, Luis Chamberlain wrote:
> make_request-based drivers and and request-based drivers share some
> debugfs code. By moving this into its own file it makes it easier
> to expand and audit this shared code.
>
> This patch contains no functional changes.
>
> Cc: Bart Van Assche <[email protected]>
> Cc: Omar Sandoval <[email protected]>
> Cc: Hannes Reinecke <[email protected]>
> Cc: Nicolai Stange <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: Michal Hocko <[email protected]>
> Cc: yu kuai <[email protected]>
> Reviewed-by: Greg Kroah-Hartman <[email protected]>
> Reviewed-by: Bart Van Assche <[email protected]>
> Signed-off-by: Luis Chamberlain <[email protected]>

Looks good,

Reviewed-by: Christoph Hellwig <[email protected]>