.getgeo = ubd_getgeo,
};
-/* Protected by ubd_lock */
-static struct gendisk *ubd_gendisk[MAX_DEV];
-
#ifdef CONFIG_BLK_DEV_UBD_SYNC
#define OPEN_FLAGS ((struct openflags) { .r = 1, .w = 1, .s = 1, .c = 0, \
.cl = 1 })
unsigned no_trim:1;
struct cow cow;
struct platform_device pdev;
+ struct gendisk *disk;
struct request_queue *queue;
struct blk_mq_tag_set tag_set;
spinlock_t lock;
if (err)
goto out_cleanup_disk;
- ubd_gendisk[n] = disk;
return 0;
out_cleanup_disk:
static int ubd_remove(int n, char **error_out)
{
- struct gendisk *disk = ubd_gendisk[n];
struct ubd *ubd_dev;
int err = -ENODEV;
if(ubd_dev->count > 0)
goto out;
- ubd_gendisk[n] = NULL;
- if(disk != NULL){
- del_gendisk(disk);
- put_disk(disk);
+ if (ubd_dev->disk) {
+ del_gendisk(ubd_dev->disk);
+ put_disk(ubd_dev->disk);
}
err = 0;