Commit 32621ad7 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

ubd: remove the ubd_gendisk array

And add a disk pointer to the ubd structure instead to keep all
the per-device information together.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarRichard Weinberger <richard@nod.at>
Link: https://lore.kernel.org/r/20240222072417.3773131-2-hch@lst.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent ba3f67c1
...@@ -125,9 +125,6 @@ static const struct block_device_operations ubd_blops = { ...@@ -125,9 +125,6 @@ static const struct block_device_operations ubd_blops = {
.getgeo = ubd_getgeo, .getgeo = ubd_getgeo,
}; };
/* Protected by ubd_lock */
static struct gendisk *ubd_gendisk[MAX_DEV];
#ifdef CONFIG_BLK_DEV_UBD_SYNC #ifdef CONFIG_BLK_DEV_UBD_SYNC
#define OPEN_FLAGS ((struct openflags) { .r = 1, .w = 1, .s = 1, .c = 0, \ #define OPEN_FLAGS ((struct openflags) { .r = 1, .w = 1, .s = 1, .c = 0, \
.cl = 1 }) .cl = 1 })
...@@ -165,6 +162,7 @@ struct ubd { ...@@ -165,6 +162,7 @@ struct ubd {
unsigned no_trim:1; unsigned no_trim:1;
struct cow cow; struct cow cow;
struct platform_device pdev; struct platform_device pdev;
struct gendisk *disk;
struct request_queue *queue; struct request_queue *queue;
struct blk_mq_tag_set tag_set; struct blk_mq_tag_set tag_set;
spinlock_t lock; spinlock_t lock;
...@@ -922,7 +920,6 @@ static int ubd_add(int n, char **error_out) ...@@ -922,7 +920,6 @@ static int ubd_add(int n, char **error_out)
if (err) if (err)
goto out_cleanup_disk; goto out_cleanup_disk;
ubd_gendisk[n] = disk;
return 0; return 0;
out_cleanup_disk: out_cleanup_disk:
...@@ -1014,7 +1011,6 @@ static int ubd_id(char **str, int *start_out, int *end_out) ...@@ -1014,7 +1011,6 @@ static int ubd_id(char **str, int *start_out, int *end_out)
static int ubd_remove(int n, char **error_out) static int ubd_remove(int n, char **error_out)
{ {
struct gendisk *disk = ubd_gendisk[n];
struct ubd *ubd_dev; struct ubd *ubd_dev;
int err = -ENODEV; int err = -ENODEV;
...@@ -1030,10 +1026,9 @@ static int ubd_remove(int n, char **error_out) ...@@ -1030,10 +1026,9 @@ static int ubd_remove(int n, char **error_out)
if(ubd_dev->count > 0) if(ubd_dev->count > 0)
goto out; goto out;
ubd_gendisk[n] = NULL; if (ubd_dev->disk) {
if(disk != NULL){ del_gendisk(ubd_dev->disk);
del_gendisk(disk); put_disk(ubd_dev->disk);
put_disk(disk);
} }
err = 0; err = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment