Thread (3 messages) flat view 3 messages, 3 authors, 2017-02-01

Re: [PATCH v2] scsi, block: fix duplicate bdi name registration crashes

From: Bart Van Assche <hidden>
Date: 2017-02-01 20:35:33
Also in: linux-block, lkml

On Wed, 2017-02-01 at 11:32 -0800, Dan Williams wrote:
quoted hunk ↗ jump to hunk
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 76f39754e7b0..27e7e12c0c2d 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -167,6 +167,22 @@ struct blk_integrity {
 };
 
 #endif	/* CONFIG_BLK_DEV_INTEGRITY */
+struct disk_devt {
+	atomic_t count;
+	void (*release)(struct disk_devt *disk_devt);
+};
+
+static inline void put_disk_devt(struct disk_devt *disk_devt)
+{
+	if (disk_devt && atomic_dec_and_test(&disk_devt->count))
+		disk_devt->release(disk_devt);
+}
+
+static inline void get_disk_devt(struct disk_devt *disk_devt)
+{
+	if (disk_devt)
+		atomic_inc(&disk_devt->count);
+}
The <linux/genhd.h> header file is included directly or indirectly in a
huge number of source files. Since neither get_disk_devt() nor
put_disk_devt() are called from the I/O path, please move these functions
from <linux/genhd.h> into block/genhd.c to keep the compilation time of
the kernel as short as possible.

Thanks,

Bart.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help