All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chaitanya Kulkarni <kch@nvidia.com>
To: <ogeert@linux-m68k.org>, <linux-block@vger.kernel.org>,
	<linux-m68k@lists.linux-m68k.org>, <linux-kernel@vger.kernel.org>,
	<drbd-dev@lists.linbit.com>, <nbd@other.debian.org>,
	<linux-mtd@lists.infradead.org>
Cc: <axboe@kernel.dk>, <philipp.reisner@linbit.com>,
	<lars.ellenberg@linbit.com>, <christoph.boehmwalder@linbit.com>,
	<efremov@linux.com>, <josef@toxicpanda.com>, <tim@cyberelk.net>,
	<haris.iqbal@ionos.com>, <jinpu.wang@ionos.com>, <richard@nod.at>,
	<miquel.raynal@bootlin.com>, <vigneshr@ti.com>, <kch@nvidia.com>,
	<mcgrof@kernel.org>, <hare@suse.de>,
	<damien.lemoal@opensource.wdc.com>, <johannes.thumshirn@wdc.com>,
	<bvanassche@acm.org>, <ming.lei@redhat.com>,
	<vincent.fu@samsung.com>, <shinichiro.kawasaki@wdc.com>
Subject: [RFC PATCH 01/18] block: add and use init disk helper
Date: Tue, 4 Oct 2022 22:00:10 -0700	[thread overview]
Message-ID: <20221005050027.39591-2-kch@nvidia.com> (raw)
In-Reply-To: <20221005050027.39591-1-kch@nvidia.com>

Add and use the helper to initialize the common fields of struct gendisk
such as major, first_minor, minors, disk_name, private_data, and ops.
This initialization is spread all over the block drivers. This avoids
code repetation of inialization code of gendisk in current block drivers
and any future ones.

Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
---
 block/genhd.c                 | 13 +++++++++++++
 drivers/block/null_blk/main.c | 12 ++++--------
 include/linux/blkdev.h        |  5 +++++
 3 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/block/genhd.c b/block/genhd.c
index 514395361d7c..701309a7388e 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -1470,3 +1470,16 @@ void inc_diskseq(struct gendisk *disk)
 {
 	disk->diskseq = atomic64_inc_return(&diskseq);
 }
+
+void init_disk(struct gendisk *disk, int major, int first_minor,
+		int minors, sector_t sectors, void *private_data,
+		const struct block_device_operations *fops)
+{
+	disk->major = major;
+	disk->first_minor = first_minor;
+	disk->minors = minors;
+	set_capacity(disk, sectors);
+	disk->private_data = private_data;
+	disk->fops = fops;
+}
+EXPORT_SYMBOL_GPL(init_disk);
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index 1f154f92f4c2..d31085c94fd3 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -1871,18 +1871,14 @@ static int init_driver_queues(struct nullb *nullb)
 static int null_gendisk_register(struct nullb *nullb)
 {
 	sector_t size = ((sector_t)nullb->dev->size * SZ_1M) >> SECTOR_SHIFT;
+	const struct block_device_operations *fops;
 	struct gendisk *disk = nullb->disk;
 
-	set_capacity(disk, size);
-
-	disk->major		= null_major;
-	disk->first_minor	= nullb->index;
-	disk->minors		= 1;
 	if (queue_is_mq(nullb->q))
-		disk->fops		= &null_rq_ops;
+		fops		= &null_rq_ops;
 	else
-		disk->fops		= &null_bio_ops;
-	disk->private_data	= nullb;
+		fops		= &null_bio_ops;
+	init_disk(disk, null_major, nullb->index, 1, size, nullb, fops);
 	strncpy(disk->disk_name, nullb->disk_name, DISK_NAME_LEN);
 
 	if (nullb->dev->zoned) {
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 49373d002631..cb9db857f890 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -757,6 +757,11 @@ static inline int __must_check add_disk(struct gendisk *disk)
 {
 	return device_add_disk(NULL, disk, NULL);
 }
+
+void init_disk(struct gendisk *disk, int major, int first_minor,
+		int minors, sector_t sectors, void *private_data,
+		const struct block_device_operations *fops);
+
 void del_gendisk(struct gendisk *gp);
 void invalidate_disk(struct gendisk *disk);
 void set_disk_ro(struct gendisk *disk, bool read_only);
-- 
2.29.0


WARNING: multiple messages have this Message-ID (diff)
From: Chaitanya Kulkarni <kch@nvidia.com>
To: <ogeert@linux-m68k.org>, <linux-block@vger.kernel.org>,
	<linux-m68k@lists.linux-m68k.org>, <linux-kernel@vger.kernel.org>,
	<drbd-dev@lists.linbit.com>, <nbd@other.debian.org>,
	<linux-mtd@lists.infradead.org>
Cc: <axboe@kernel.dk>, <philipp.reisner@linbit.com>,
	<lars.ellenberg@linbit.com>, <christoph.boehmwalder@linbit.com>,
	<efremov@linux.com>, <josef@toxicpanda.com>, <tim@cyberelk.net>,
	<haris.iqbal@ionos.com>, <jinpu.wang@ionos.com>, <richard@nod.at>,
	<miquel.raynal@bootlin.com>, <vigneshr@ti.com>, <kch@nvidia.com>,
	<mcgrof@kernel.org>, <hare@suse.de>,
	<damien.lemoal@opensource.wdc.com>, <johannes.thumshirn@wdc.com>,
	<bvanassche@acm.org>, <ming.lei@redhat.com>,
	<vincent.fu@samsung.com>, <shinichiro.kawasaki@wdc.com>
Subject: [RFC PATCH 01/18] block: add and use init disk helper
Date: Tue, 4 Oct 2022 22:00:10 -0700	[thread overview]
Message-ID: <20221005050027.39591-2-kch@nvidia.com> (raw)
In-Reply-To: <20221005050027.39591-1-kch@nvidia.com>

Add and use the helper to initialize the common fields of struct gendisk
such as major, first_minor, minors, disk_name, private_data, and ops.
This initialization is spread all over the block drivers. This avoids
code repetation of inialization code of gendisk in current block drivers
and any future ones.

Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
---
 block/genhd.c                 | 13 +++++++++++++
 drivers/block/null_blk/main.c | 12 ++++--------
 include/linux/blkdev.h        |  5 +++++
 3 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/block/genhd.c b/block/genhd.c
index 514395361d7c..701309a7388e 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -1470,3 +1470,16 @@ void inc_diskseq(struct gendisk *disk)
 {
 	disk->diskseq = atomic64_inc_return(&diskseq);
 }
+
+void init_disk(struct gendisk *disk, int major, int first_minor,
+		int minors, sector_t sectors, void *private_data,
+		const struct block_device_operations *fops)
+{
+	disk->major = major;
+	disk->first_minor = first_minor;
+	disk->minors = minors;
+	set_capacity(disk, sectors);
+	disk->private_data = private_data;
+	disk->fops = fops;
+}
+EXPORT_SYMBOL_GPL(init_disk);
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index 1f154f92f4c2..d31085c94fd3 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -1871,18 +1871,14 @@ static int init_driver_queues(struct nullb *nullb)
 static int null_gendisk_register(struct nullb *nullb)
 {
 	sector_t size = ((sector_t)nullb->dev->size * SZ_1M) >> SECTOR_SHIFT;
+	const struct block_device_operations *fops;
 	struct gendisk *disk = nullb->disk;
 
-	set_capacity(disk, size);
-
-	disk->major		= null_major;
-	disk->first_minor	= nullb->index;
-	disk->minors		= 1;
 	if (queue_is_mq(nullb->q))
-		disk->fops		= &null_rq_ops;
+		fops		= &null_rq_ops;
 	else
-		disk->fops		= &null_bio_ops;
-	disk->private_data	= nullb;
+		fops		= &null_bio_ops;
+	init_disk(disk, null_major, nullb->index, 1, size, nullb, fops);
 	strncpy(disk->disk_name, nullb->disk_name, DISK_NAME_LEN);
 
 	if (nullb->dev->zoned) {
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 49373d002631..cb9db857f890 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -757,6 +757,11 @@ static inline int __must_check add_disk(struct gendisk *disk)
 {
 	return device_add_disk(NULL, disk, NULL);
 }
+
+void init_disk(struct gendisk *disk, int major, int first_minor,
+		int minors, sector_t sectors, void *private_data,
+		const struct block_device_operations *fops);
+
 void del_gendisk(struct gendisk *gp);
 void invalidate_disk(struct gendisk *disk);
 void set_disk_ro(struct gendisk *disk, bool read_only);
-- 
2.29.0


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2022-10-05  5:01 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-05  5:00 [RFC PATCH 00/18] block: add and use init disk helper Chaitanya Kulkarni
2022-10-05  5:00 ` Chaitanya Kulkarni
2022-10-05  5:00 ` Chaitanya Kulkarni [this message]
2022-10-05  5:00   ` [RFC PATCH 01/18] " Chaitanya Kulkarni
2022-10-10  7:59   ` Christoph Hellwig
2022-10-10  7:59     ` Christoph Hellwig
2022-10-10 16:50     ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 02/18] nfblock: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 03/18] amiflop: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 04/18] brd: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 05/18] drbd: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05 10:09   ` Christoph Böhmwalder
2022-10-05 10:09     ` Christoph Böhmwalder
2022-10-05 17:24     ` Chaitanya Kulkarni
2022-10-05 17:24       ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 06/18] floppy: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 07/18] loop: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 08/18] n64cart: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 09/18] nbd: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 10/18] pcd: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 11/18] pd: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 12/18] pf: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 13/18] pktcdvd: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 14/18] rnbd-clt: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 15/18] swim: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  6:54   ` Finn Thain
2022-10-05  6:54     ` Finn Thain
2022-10-05  5:00 ` [RFC PATCH 16/18] swim3: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 17/18] z2ram: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni
2022-10-05  5:00 ` [RFC PATCH 18/18] ubi: " Chaitanya Kulkarni
2022-10-05  5:00   ` Chaitanya Kulkarni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221005050027.39591-2-kch@nvidia.com \
    --to=kch@nvidia.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=christoph.boehmwalder@linbit.com \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=drbd-dev@lists.linbit.com \
    --cc=efremov@linux.com \
    --cc=hare@suse.de \
    --cc=haris.iqbal@ionos.com \
    --cc=jinpu.wang@ionos.com \
    --cc=johannes.thumshirn@wdc.com \
    --cc=josef@toxicpanda.com \
    --cc=lars.ellenberg@linbit.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=mcgrof@kernel.org \
    --cc=ming.lei@redhat.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=nbd@other.debian.org \
    --cc=ogeert@linux-m68k.org \
    --cc=philipp.reisner@linbit.com \
    --cc=richard@nod.at \
    --cc=shinichiro.kawasaki@wdc.com \
    --cc=tim@cyberelk.net \
    --cc=vigneshr@ti.com \
    --cc=vincent.fu@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.