[PATCH v4 00/12] enable nvmet-fc for blktests

From: Daniel Wagner
Date: Tue Jan 30 2024 - 04:51:31 EST


The first version which allows to run blktests in loop without crashing or
hanging forever somewhere. The missing fix was the argument swap patch
for list_add_tail, which ensured no response gets dropped on tbe floor.

Note, this runs with the udev auto connect rule running in the background which
injects a lot of additional noise to the test. For example blktests will warn
about 'device not removed', which is correct but this device was not created by
the test, it was created by the udev rule. nvme/003 fails because it disconnects
two devices instead the exptected one.

These are things we have to address in blktests though. So hopefully with these
patches we are getting close to run blktests on a regular basis.

changes:
v4:
- dropped patches which got applied
- dropped 'nvmet-fc: free hostport after release reference to tgtport'
- reworked commit message of 'nvmet-fc: untangle cross refcounting objects'
and renamed it to 'nvmet-fc: defer cleanup using RCU properly'
- added 'nvmet-fcloop: swap the list_add_tail arguments'
and 'nvmet-fc: use RCU list iterator for assoc_list'
- added RBs

v3:
- collected all patches into one series
- updated ref counting in nvmet-fc

v2:
- added RBs
- added new patches
- https://lore.kernel.org/linux-nvme/20230620133711.22840-1-dwagner@xxxxxxx/

v1:
- https://lore.kernel.org/linux-nvme/20230615094356.14878-1-dwagner@xxxxxxx/


*** BLURB HERE ***

Daniel Wagner (12):
nvme-fc: do not wait in vain when unloading module
nvmet-fcloop: swap the list_add_tail arguments
nvmet-fc: release reference on target port
nvmet-fc: defer cleanup using RCU properly
nvmet-fc: free queue and assoc directly
nvmet-fc: hold reference on hostport match
nvmet-fc: remove null hostport pointer check
nvmet-fc: do not tack refs on tgtports from assoc
nvmet-fc: abort command when there is no binding
nvmet-fc: avoid deadlock on delete association path
nvmet-fc: take ref count on tgtport before delete assoc
nvmet-fc: use RCU list iterator for assoc_list

drivers/nvme/host/fc.c | 47 ++---------
drivers/nvme/target/fc.c | 156 +++++++++++++++++++----------------
drivers/nvme/target/fcloop.c | 6 +-
3 files changed, 93 insertions(+), 116 deletions(-)

--
2.43.0