Logan Gunthorpe 86b9a63e59 nvmet-loop: Flush nvme_delete_wq when removing the port
After calling nvme_loop_delete_ctrl(), the controllers will not
yet be deleted because nvme_delete_ctrl() only schedules work
to do the delete.

This means a race can occur if a port is removed but there
are still active controllers trying to access that memory.

To fix this, flush the nvme_delete_wq before returning from
nvme_loop_remove_port() so that any controllers that might
be in the process of being deleted won't access a freed port.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Reviewed-by : Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
2019-07-31 17:57:17 -07:00
..
2019-07-27 08:25:51 -07:00
2019-07-28 10:26:10 -07:00
2019-07-19 17:13:56 -07:00
2019-07-18 09:49:30 +02:00
2019-07-17 09:55:43 -07:00
2019-07-15 09:42:32 -07:00
2019-07-20 10:04:58 -07:00
2019-07-09 08:59:39 -07:00
2019-07-13 16:08:36 -07:00
2019-07-26 10:32:12 -07:00
2019-07-22 09:01:47 -07:00
2019-07-20 09:34:55 -07:00
2019-07-11 18:11:21 -07:00
2019-07-11 15:14:01 -07:00
2019-07-15 20:18:40 -07:00
2019-07-11 18:11:21 -07:00
2019-07-27 08:25:51 -07:00
2019-07-15 20:44:49 -07:00
2019-07-15 09:20:27 -03:00
2019-07-01 15:04:59 +02:00
2019-07-09 08:57:45 -07:00
2019-07-15 20:18:40 -07:00
2019-07-17 11:44:41 -07:00
2019-07-19 17:13:56 -07:00
2019-07-17 10:03:50 -07:00
2019-07-26 14:20:28 -07:00
2019-07-05 08:15:08 +02:00
2019-07-16 12:21:41 -07:00
2019-07-28 10:18:33 -07:00
2019-07-17 11:23:13 -07:00
2019-07-16 09:25:04 -07:00
2019-07-19 11:41:26 -07:00