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/
next prev parent 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: linkBe 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.