[RFC PATCH 04/18] brd: use init disk helper
Chaitanya Kulkarni
kch at nvidia.com
Tue Oct 4 22:00:13 PDT 2022
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 at nvidia.com>
---
drivers/block/ataflop.c | 8 ++------
drivers/block/brd.c | 9 ++-------
2 files changed, 4 insertions(+), 13 deletions(-)
diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c
index 9deb4df6bdb8..cd70f7b329c4 100644
--- a/drivers/block/ataflop.c
+++ b/drivers/block/ataflop.c
@@ -1997,15 +1997,11 @@ static int ataflop_alloc_disk(unsigned int drive, unsigned int type)
if (IS_ERR(disk))
return PTR_ERR(disk);
- disk->major = FLOPPY_MAJOR;
- disk->first_minor = drive + (type << 2);
- disk->minors = 1;
sprintf(disk->disk_name, "fd%d", drive);
- disk->fops = &floppy_fops;
disk->flags |= GENHD_FL_NO_PART;
disk->events = DISK_EVENT_MEDIA_CHANGE;
- disk->private_data = &unit[drive];
- set_capacity(disk, MAX_DISK_SIZE * 2);
+ init_disk(disk, FLOPPY_MAJOR, drive + (type << 2), 1,
+ MAX_DISK_SIZE * 2, &unit[drive], &floppy_fops);
unit[drive].disk[type] = disk;
return 0;
diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index 20acc4a1fd6d..f60fda36a813 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -392,14 +392,9 @@ static int brd_alloc(int i)
if (!disk)
goto out_free_dev;
- disk->major = RAMDISK_MAJOR;
- disk->first_minor = i * max_part;
- disk->minors = max_part;
- disk->fops = &brd_fops;
- disk->private_data = brd;
strscpy(disk->disk_name, buf, DISK_NAME_LEN);
- set_capacity(disk, rd_size * 2);
-
+ init_disk(disk, RAMDISK_MAJOR, i * max_part, max_part, rd_size * 2,
+ brd, &brd_fops);
/*
* This is so fdisk will align partitions on 4k, because of
* direct_access API needing 4k alignment, returning a PFN
--
2.29.0
More information about the linux-mtd
mailing list