diff options
author | Sergey Senozhatsky <sergey.senozhatsky@gmail.com> | 2015-02-12 18:00:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-12 21:54:12 -0500 |
commit | ee98016010ae036a5b27300d83bd99ef3fd5776e (patch) | |
tree | baddea4a5c526ff632ebdf7eaed106cb25d5596b /drivers/block | |
parent | 08eee69fcf6baea543a2b4d2a2fcba0e61aa3160 (diff) |
zram: remove request_queue from struct zram
`struct zram' contains both `struct gendisk' and `struct request_queue'.
the latter can be deleted, because zram->disk carries ->queue pointer, and
->queue carries zram pointer:
create_device()
zram->queue->queuedata = zram
zram->disk->queue = zram->queue
zram->disk->private_data = zram
so zram->queue is not needed, we can access all necessary data anyway.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Jerome Marchand <jmarchan@redhat.com>
Cc: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/zram/zram_drv.c | 16 | ||||
-rw-r--r-- | drivers/block/zram/zram_drv.h | 1 |
2 files changed, 8 insertions, 9 deletions
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index db94572b35c4..eca4b67274c1 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c | |||
@@ -1061,19 +1061,19 @@ static struct attribute_group zram_disk_attr_group = { | |||
1061 | 1061 | ||
1062 | static int create_device(struct zram *zram, int device_id) | 1062 | static int create_device(struct zram *zram, int device_id) |
1063 | { | 1063 | { |
1064 | struct request_queue *queue; | ||
1064 | int ret = -ENOMEM; | 1065 | int ret = -ENOMEM; |
1065 | 1066 | ||
1066 | init_rwsem(&zram->init_lock); | 1067 | init_rwsem(&zram->init_lock); |
1067 | 1068 | ||
1068 | zram->queue = blk_alloc_queue(GFP_KERNEL); | 1069 | queue = blk_alloc_queue(GFP_KERNEL); |
1069 | if (!zram->queue) { | 1070 | if (!queue) { |
1070 | pr_err("Error allocating disk queue for device %d\n", | 1071 | pr_err("Error allocating disk queue for device %d\n", |
1071 | device_id); | 1072 | device_id); |
1072 | goto out; | 1073 | goto out; |
1073 | } | 1074 | } |
1074 | 1075 | ||
1075 | blk_queue_make_request(zram->queue, zram_make_request); | 1076 | blk_queue_make_request(queue, zram_make_request); |
1076 | zram->queue->queuedata = zram; | ||
1077 | 1077 | ||
1078 | /* gendisk structure */ | 1078 | /* gendisk structure */ |
1079 | zram->disk = alloc_disk(1); | 1079 | zram->disk = alloc_disk(1); |
@@ -1086,7 +1086,8 @@ static int create_device(struct zram *zram, int device_id) | |||
1086 | zram->disk->major = zram_major; | 1086 | zram->disk->major = zram_major; |
1087 | zram->disk->first_minor = device_id; | 1087 | zram->disk->first_minor = device_id; |
1088 | zram->disk->fops = &zram_devops; | 1088 | zram->disk->fops = &zram_devops; |
1089 | zram->disk->queue = zram->queue; | 1089 | zram->disk->queue = queue; |
1090 | zram->disk->queue->queuedata = zram; | ||
1090 | zram->disk->private_data = zram; | 1091 | zram->disk->private_data = zram; |
1091 | snprintf(zram->disk->disk_name, 16, "zram%d", device_id); | 1092 | snprintf(zram->disk->disk_name, 16, "zram%d", device_id); |
1092 | 1093 | ||
@@ -1137,7 +1138,7 @@ out_free_disk: | |||
1137 | del_gendisk(zram->disk); | 1138 | del_gendisk(zram->disk); |
1138 | put_disk(zram->disk); | 1139 | put_disk(zram->disk); |
1139 | out_free_queue: | 1140 | out_free_queue: |
1140 | blk_cleanup_queue(zram->queue); | 1141 | blk_cleanup_queue(queue); |
1141 | out: | 1142 | out: |
1142 | return ret; | 1143 | return ret; |
1143 | } | 1144 | } |
@@ -1158,10 +1159,9 @@ static void destroy_devices(unsigned int nr) | |||
1158 | 1159 | ||
1159 | zram_reset_device(zram); | 1160 | zram_reset_device(zram); |
1160 | 1161 | ||
1162 | blk_cleanup_queue(zram->disk->queue); | ||
1161 | del_gendisk(zram->disk); | 1163 | del_gendisk(zram->disk); |
1162 | put_disk(zram->disk); | 1164 | put_disk(zram->disk); |
1163 | |||
1164 | blk_cleanup_queue(zram->queue); | ||
1165 | } | 1165 | } |
1166 | 1166 | ||
1167 | kfree(zram_devices); | 1167 | kfree(zram_devices); |
diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h index 5249f51ccdb3..17056e589146 100644 --- a/drivers/block/zram/zram_drv.h +++ b/drivers/block/zram/zram_drv.h | |||
@@ -101,7 +101,6 @@ struct zram_meta { | |||
101 | struct zram { | 101 | struct zram { |
102 | struct zram_meta *meta; | 102 | struct zram_meta *meta; |
103 | struct zcomp *comp; | 103 | struct zcomp *comp; |
104 | struct request_queue *queue; | ||
105 | struct gendisk *disk; | 104 | struct gendisk *disk; |
106 | /* Prevent concurrent execution of device init */ | 105 | /* Prevent concurrent execution of device init */ |
107 | struct rw_semaphore init_lock; | 106 | struct rw_semaphore init_lock; |