mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
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: Christoph Hellwig <hch@lst.de> Reviewed-by: Richard Weinberger <richard@nod.at> Link: https://lore.kernel.org/r/20240222072417.3773131-2-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
ba3f67c116
commit
32621ad7a7
1 changed files with 4 additions and 9 deletions
|
@ -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 {
|
||||||
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)
|
||||||
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)
|
||||||
|
|
||||||
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)
|
||||||
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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue