diff options
author | kaoudis <kaoudis@colorado.edu> | 2015-01-14 23:01:58 -0500 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-01-21 23:51:57 -0500 |
commit | 121c7ad4ef3f3a9e697c4b8b78d74e4d6847d9e4 (patch) | |
tree | 147d73c726847fdf27b77e32bb3acf401200732d | |
parent | 227290b4690510148d1f40f277c6c3a181fcb440 (diff) |
NVMe: within nvme_free_queues(), delete RCU sychro/deferred free
Converting from to blk-queue got rid of the driver's RCU
locking-on-queue, so removing unnecessary RCU locking-on-queue
artefacts.
Reviewed-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Kelly Nicole Kaoudis <kaoudis@colorado.edu>
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | drivers/block/nvme-core.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c index f7d083bb3bd5..f4aa64160838 100644 --- a/drivers/block/nvme-core.c +++ b/drivers/block/nvme-core.c | |||
@@ -1108,21 +1108,14 @@ static void nvme_free_queue(struct nvme_queue *nvmeq) | |||
1108 | 1108 | ||
1109 | static void nvme_free_queues(struct nvme_dev *dev, int lowest) | 1109 | static void nvme_free_queues(struct nvme_dev *dev, int lowest) |
1110 | { | 1110 | { |
1111 | LLIST_HEAD(q_list); | ||
1112 | struct nvme_queue *nvmeq, *next; | ||
1113 | struct llist_node *entry; | ||
1114 | int i; | 1111 | int i; |
1115 | 1112 | ||
1116 | for (i = dev->queue_count - 1; i >= lowest; i--) { | 1113 | for (i = dev->queue_count - 1; i >= lowest; i--) { |
1117 | struct nvme_queue *nvmeq = dev->queues[i]; | 1114 | struct nvme_queue *nvmeq = dev->queues[i]; |
1118 | llist_add(&nvmeq->node, &q_list); | ||
1119 | dev->queue_count--; | 1115 | dev->queue_count--; |
1120 | dev->queues[i] = NULL; | 1116 | dev->queues[i] = NULL; |
1121 | } | ||
1122 | synchronize_rcu(); | ||
1123 | entry = llist_del_all(&q_list); | ||
1124 | llist_for_each_entry_safe(nvmeq, next, entry, node) | ||
1125 | nvme_free_queue(nvmeq); | 1117 | nvme_free_queue(nvmeq); |
1118 | } | ||
1126 | } | 1119 | } |
1127 | 1120 | ||
1128 | /** | 1121 | /** |