linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* yet another approach to fix the loop lock order inversions v5
@ 2022-03-25  6:39 Christoph Hellwig
  2022-03-25  6:39 ` [PATCH 01/14] nbd: use the correct block_device in nbd_bdev_reset Christoph Hellwig
                   ` (14 more replies)
  0 siblings, 15 replies; 26+ messages in thread
From: Christoph Hellwig @ 2022-03-25  6:39 UTC (permalink / raw)
  To: Jens Axboe, Josef Bacik, Minchan Kim, Nitin Gupta
  Cc: Tetsuo Handa, Jan Kara, Darrick J . Wong, Ming Lei, Matteo Croce,
	linux-block, nbd

Hi all,

this series uses the approach from Tetsuo to delay the destroy_workueue
call, extended by a delayed teardown of the workers to fix a potential
race window then the workqueue can be still round after finishing the
commands. 

Changes since v4:
 - keep the (questionable) __invalidate_device call in nbd as-is for now
 - suppress uevents while reconfiguring

Changes since v3:
 - change bd_openers into a atomic_t, including a bunch of cleanups
   and fix found while adding those

Changes since v2:
 - rebased to the lastest block for-next tree, which has the async
   clear reverted and ->free_disk
 - impkement ->free_disk for loop to handle open vs delete races
   more gracefully
 - get rid of lo_refcnt entirely

Changes since v1:
 - add comments to document the lo_refcnt synchronization
 - fix comment typos

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2022-03-30  8:14 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-25  6:39 yet another approach to fix the loop lock order inversions v5 Christoph Hellwig
2022-03-25  6:39 ` [PATCH 01/14] nbd: use the correct block_device in nbd_bdev_reset Christoph Hellwig
2022-03-25  9:48   ` Jan Kara
2022-03-25  6:39 ` [PATCH 02/14] zram: cleanup reset_store Christoph Hellwig
2022-03-25  6:39 ` [PATCH 03/14] zram: cleanup zram_remove Christoph Hellwig
2022-03-25  6:39 ` [PATCH 04/14] block: add a disk_openers helper Christoph Hellwig
2022-03-25  6:39 ` [PATCH 05/14] block: turn bdev->bd_openers into an atomic_t Christoph Hellwig
2022-03-25  6:39 ` [PATCH 06/14] loop: de-duplicate the idle worker freeing code Christoph Hellwig
2022-03-25  6:39 ` [PATCH 07/14] loop: initialize the worker tracking fields once Christoph Hellwig
2022-03-25  6:39 ` [PATCH 08/14] loop: remove the racy bd_inode->i_mapping->nrpages asserts Christoph Hellwig
2022-03-25  6:39 ` [PATCH 09/14] loop: don't freeze the queue in lo_release Christoph Hellwig
2022-03-25  6:39 ` [PATCH 10/14] loop: only freeze the queue in __loop_clr_fd when needed Christoph Hellwig
2022-03-25  6:39 ` [PATCH 11/14] loop: implement ->free_disk Christoph Hellwig
2022-03-25 10:42   ` Tetsuo Handa
2022-03-25 15:10     ` Tetsuo Handa
2022-03-25  6:39 ` [PATCH 12/14] loop: suppress uevents while reconfiguring the device Christoph Hellwig
2022-03-25  9:49   ` Jan Kara
2022-03-25  6:39 ` [PATCH 13/14] loop: remove lo_refcount and avoid lo_mutex in ->open / ->release Christoph Hellwig
2022-03-26  2:52   ` Tetsuo Handa
2022-03-29  6:52     ` Christoph Hellwig
2022-03-29 13:25       ` Christoph Hellwig
2022-03-29 14:02         ` Tetsuo Handa
2022-03-29 14:49           ` Christoph Hellwig
2022-03-25  6:39 ` [PATCH 14/14] loop: don't destroy lo->workqueue in __loop_clr_fd Christoph Hellwig
2022-03-29 15:36 ` [PATCH 15/14] loop: avoid loop_validate_mutex/lo_mutex in ->release Tetsuo Handa
2022-03-30  8:14   ` Jan Kara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).