diff --git a/modules/cas_cache/cas_cache.h b/modules/cas_cache/cas_cache.h index 14bd124..ac27681 100644 --- a/modules/cas_cache/cas_cache.h +++ b/modules/cas_cache/cas_cache.h @@ -51,14 +51,11 @@ enum { }; struct cas_module { - uint32_t next_disk_id; int disk_major; int next_minor; struct kmem_cache *disk_cache; struct kmem_cache *exp_obj_cache; - - struct kobject kobj; }; extern struct cas_module cas_module; diff --git a/modules/cas_cache/disk.c b/modules/cas_cache/disk.c index 801572d..9ec7b4a 100644 --- a/modules/cas_cache/disk.c +++ b/modules/cas_cache/disk.c @@ -13,11 +13,6 @@ #define CAS_DISK_OPEN_FMODE (FMODE_READ | FMODE_WRITE) -static inline struct cas_disk *cas_kobj_to_disk(struct kobject *kobj) -{ - return container_of(kobj, struct cas_disk, kobj); -} - static inline struct block_device *open_bdev_exclusive(const char *path, fmode_t mode, void *holder) @@ -30,32 +25,10 @@ static inline void close_bdev_exclusive(struct block_device *bdev, fmode_t mode) blkdev_put(bdev, mode | FMODE_EXCL); } -static void _cas_disk_release(struct kobject *kobj) -{ - struct cas_disk *dsk; - - BUG_ON(!kobj); - - dsk = cas_kobj_to_disk(kobj); - BUG_ON(!dsk); - - CAS_DEBUG_DISK_TRACE(dsk); - - kfree(dsk->path); - - kmem_cache_free(cas_module.disk_cache, dsk); -} - -static struct kobj_type cas_disk_ktype = { - .release = _cas_disk_release, -}; - int __init cas_init_disks(void) { CAS_DEBUG_TRACE(); - cas_module.next_disk_id = 1; - cas_module.disk_major = register_blkdev(cas_module.disk_major, "cas"); if (cas_module.disk_major <= 0) { @@ -83,19 +56,6 @@ void cas_deinit_disks(void) unregister_blkdev(cas_module.disk_major, "cas"); } -static int _cas_disk_init_kobject(struct cas_disk *dsk) -{ - int result = 0; - - kobject_init(&dsk->kobj, &cas_disk_ktype); - result = kobject_add(&dsk->kobj, &disk_to_dev(dsk->bd->bd_disk)->kobj, - "cas%d", dsk->id); - if (result) - CAS_DEBUG_DISK_ERROR(dsk, "Cannot register kobject"); - - return result; -} - struct cas_disk *cas_disk_open(const char *path) { struct cas_disk *dsk; @@ -127,18 +87,10 @@ struct cas_disk *cas_disk_open(const char *path) goto error_open_bdev; } - dsk->id = cas_module.next_disk_id++; - - result = _cas_disk_init_kobject(dsk); - if (result) - goto error_kobject; - CAS_DEBUG_DISK(dsk, "Created (%p)", dsk); return dsk; -error_kobject: - close_bdev_exclusive(dsk->bd, CAS_DISK_OPEN_FMODE); error_open_bdev: kfree(dsk->path); error_kstrdup: @@ -147,15 +99,6 @@ error_kmem: return ERR_PTR(result); } -static void __cas_disk_close(struct cas_disk *dsk) -{ - BUG_ON(dsk->exp_obj); - - close_bdev_exclusive(dsk->bd, CAS_DISK_OPEN_FMODE); - - kobject_put(&dsk->kobj); -} - void cas_disk_close(struct cas_disk *dsk) { BUG_ON(!dsk); @@ -163,7 +106,10 @@ void cas_disk_close(struct cas_disk *dsk) CAS_DEBUG_DISK(dsk, "Destroying (%p)", dsk); - __cas_disk_close(dsk); + close_bdev_exclusive(dsk->bd, CAS_DISK_OPEN_FMODE); + + kfree(dsk->path); + kmem_cache_free(cas_module.disk_cache, dsk); } struct block_device *cas_disk_get_blkdev(struct cas_disk *dsk) diff --git a/modules/cas_cache/disk.h b/modules/cas_cache/disk.h index b554e9d..80c7e3a 100644 --- a/modules/cas_cache/disk.h +++ b/modules/cas_cache/disk.h @@ -5,7 +5,6 @@ #ifndef __CASDISK_DISK_H__ #define __CASDISK_DISK_H__ -#include #include #include #include @@ -15,7 +14,6 @@ struct cas_exp_obj; struct cas_disk { - uint32_t id; char *path; struct mutex openers_lock; @@ -30,8 +28,6 @@ struct cas_disk { struct blk_mq_tag_set tag_set; struct cas_exp_obj *exp_obj; - struct kobject kobj; - void *private; };