[PATCH 0/3] tcm: SYNCHRONIZE_CACHE emulation fixes and IBLOCK support

From: Nicholas A. Bellinger
Date: Sat Aug 28 2010 - 02:54:01 EST


From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>

Greetings hch, tejun and Co,

These patches are a follow up to the series posted recently for lio-core-2.6.git/lio-4.0
here:

[PATCH 0/4] tcm: Add WriteCache + FUA Write support to TCM/FILEIO
http://marc.info/?l=linux-scsi&m=128288359913333&w=2

The first and second patch follows hch's recommendation and remove the extra
'flush entire cache of device' struct se_subsystem_api->do_sync_cache() caller
from TCM Core in the original commit, and converts transport_generic_synchronize_cache()
and FILEIO dependent code to use struct se_subsystem_api->do_sync_cache_range()
for *both* the SYNCHRONIZE_CACHE emulation cases of 'per LBA + Number of Blocks Range'
flush and 'flush entrire cache of device' op.

The third patch in the series adds new support for WriteCache and FUA WRITE emulation
into the TCM/IBLOCK subsystem plugin using block/blk-barrier.c:blkdev_issue_flush()
w/ BLKDEV_IFL_WAIT flag. Note that since blkdev_issue_flush() does not support a
LBA + Range flush, all TCM/IBLOCK SYNCHRONIZE_CACHE and FUA WRITE ops involving a
LBA + Range are converted into a global device cache flush op w/ blkdev_issue_flush().

Many thanks again to hch for his guidence in this area,

Signed-off-by: Nicholas A. Bellinger <nab@xxxxxxxxxxxxxxx>

Nicholas Bellinger (3):
tcm/fileio: Remove struct se_subsystem_api->do_sync_cache() usage
tcm: Remove struct se_subsystem_api->do_sync_cache()
tcm/iblock: Add WriteCache and Forced Unit Access WRITE emulation

drivers/target/target_core_file.c | 31 ++++----
drivers/target/target_core_iblock.c | 119 ++++++++++++++++++++++++++++++-
drivers/target/target_core_iblock.h | 1 +
drivers/target/target_core_transport.c | 21 +-----
include/target/target_core_transport.h | 7 --
5 files changed, 135 insertions(+), 44 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/