target: Add percpu refcounting for se_lun access
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 7 Nov 2013 05:03:43 +0000 (21:03 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 7 Nov 2013 22:24:52 +0000 (14:24 -0800)
commit5277797dc4ed873d067477d84e910b39d113f649
tree5e2aa87dec2cbcb5bbdfadd697c92e86b0e5aa11
parentc9e8d128fe316751230ee0c53478740c64f58436
target: Add percpu refcounting for se_lun access

This patch adds percpu refcounting for se_lun access that allows the
association of an se_lun + se_cmd in transport_lookup_cmd_lun() to
occur without an extra list_head for tracking outstanding I/O during
se_lun shutdown.

This effectively changes se_lun shutdown logic to wait for outstanding
I/O percpu references to complete in transport_lun_remove_cmd() using
se_lun->lun_ref_comp, instead of explicitly draining the per se_lun
command list and waiting for individual se_cmd descriptor processing
to complete.

Cc: Kent Overstreet <kmo@daterainc.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_device.c
drivers/target/target_core_internal.h
drivers/target/target_core_tpg.c
drivers/target/target_core_transport.c
drivers/target/target_core_xcopy.c
include/target/target_core_base.h