Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
Pull scsi target updates from Nicholas Bellinger:
"The highlights in this series include:
- Improve sg_table lookup scalability in RAMDISK_MCP (martin)
- Add device attribute to expose config name for INQUIRY model (tregaron)
- Convert tcm_vhost to use lock-less list for cmd completion (asias)
- Add tcm_vhost support for multiple target's per endpoint (asias)
- Add tcm_vhost support for multiple queues per vhost (asias)
- Add missing mapped_lun bounds checking during make_mappedlun setup
in generic fabric configfs code (jan engelhardt + nab)
- Enforce individual iscsi-target network portal export once per
TargetName endpoint (grover + nab)
- Add WRITE_SAME w/ UNMAP=0 emulation to FILEIO backend (nab)
Things have been mostly quiet this round, with majority of the work
being done on the iser-target WIP driver + associated iscsi-target
refactoring patches currently in flight for v3.10 code.
At this point there is one patch series left outstanding from Asias to
add support for UNMAP + WRITE_SAME w/ UNMAP=1 to FILEIO awaiting
feedback from hch & Co, that will likely be included in a post
v3.9-rc1 PULL request if there are no objections.
Also, there is a regression bug recently reported off-list that seems
to be effecting v3.5 and v3.6 kernels with MSFT iSCSI initiators that
is still being tracked down. No word if this effects >= v3.7 just
yet, but if so there will likely another PULL request coming your
way.."
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (26 commits)
target: Rename spc_get_write_same_sectors -> sbc_get_write_same_sectors
target/file: Add WRITE_SAME w/ UNMAP=0 emulation support
iscsi-target: Enforce individual network portal export once per TargetName
iscsi-target: Refactor iscsit_get_np sockaddr matching into iscsit_check_np_match
target: Add missing mapped_lun bounds checking during make_mappedlun setup
target: Fix lookup of dynamic NodeACLs during cached demo-mode operation
target: Fix parameter list length checking in MODE SELECT
target: Fix error checking for UNMAP commands
target: Fix sense data for out-of-bounds IO operations
target_core_rd: break out unterminated loop during copy
tcm_vhost: Multi-queue support
tcm_vhost: Multi-target support
target: Add device attribute to expose config_item_name for INQUIRY model
target: don't truncate the fail intr address
target: don't always say "ipv6" as address type
target/iblock: Use backend REQ_FLUSH hint for WriteCacheEnabled status
iscsi-target: make some temporary buffers larger
tcm_vhost: Optimize gup in vhost_scsi_map_to_sgl
tcm_vhost: Use iov_num_pages to calculate sgl_count
tcm_vhost: Introduce iov_num_pages
...
This commit is contained in:
@@ -35,6 +35,7 @@ struct se_subsystem_api {
|
||||
u32 (*get_device_type)(struct se_device *);
|
||||
sector_t (*get_blocks)(struct se_device *);
|
||||
unsigned char *(*get_sense_buffer)(struct se_cmd *);
|
||||
bool (*get_write_cache)(struct se_device *);
|
||||
};
|
||||
|
||||
struct sbc_ops {
|
||||
@@ -52,11 +53,13 @@ void target_complete_cmd(struct se_cmd *, u8);
|
||||
|
||||
sense_reason_t spc_parse_cdb(struct se_cmd *cmd, unsigned int *size);
|
||||
sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd);
|
||||
sector_t spc_get_write_same_sectors(struct se_cmd *cmd);
|
||||
sense_reason_t spc_emulate_inquiry_std(struct se_cmd *, unsigned char *);
|
||||
sense_reason_t spc_emulate_evpd_83(struct se_cmd *, unsigned char *);
|
||||
|
||||
sense_reason_t sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops);
|
||||
u32 sbc_get_device_rev(struct se_device *dev);
|
||||
u32 sbc_get_device_type(struct se_device *dev);
|
||||
sector_t sbc_get_write_same_sectors(struct se_cmd *cmd);
|
||||
|
||||
void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *);
|
||||
int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *);
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
/* Used by core_alua_store_tg_pt_gp_info() and target_core_alua_tg_pt_gp_show_attr_members() */
|
||||
#define TG_PT_GROUP_NAME_BUF 256
|
||||
/* Used to parse VPD into struct t10_vpd */
|
||||
#define VPD_TMP_BUF_SIZE 128
|
||||
#define VPD_TMP_BUF_SIZE 254
|
||||
/* Used by transport_generic_cmd_sequencer() */
|
||||
#define READ_BLOCK_LEN 6
|
||||
#define READ_CAP_LEN 8
|
||||
@@ -75,6 +75,8 @@
|
||||
#define DA_MAX_WRITE_SAME_LEN 0
|
||||
/* Default max transfer length */
|
||||
#define DA_FABRIC_MAX_SECTORS 8192
|
||||
/* Use a model alias based on the configfs backend device name */
|
||||
#define DA_EMULATE_MODEL_ALIAS 0
|
||||
/* Emulation for Direct Page Out */
|
||||
#define DA_EMULATE_DPO 0
|
||||
/* Emulation for Forced Unit Access WRITEs */
|
||||
@@ -193,6 +195,7 @@ enum tcm_sense_reason_table {
|
||||
TCM_RESERVATION_CONFLICT = R(0x10),
|
||||
TCM_ADDRESS_OUT_OF_RANGE = R(0x11),
|
||||
TCM_OUT_OF_RESOURCES = R(0x12),
|
||||
TCM_PARAMETER_LIST_LENGTH_ERROR = R(0x13),
|
||||
#undef R
|
||||
};
|
||||
|
||||
@@ -211,7 +214,6 @@ enum tcm_tmreq_table {
|
||||
TMR_LUN_RESET = 5,
|
||||
TMR_TARGET_WARM_RESET = 6,
|
||||
TMR_TARGET_COLD_RESET = 7,
|
||||
TMR_FABRIC_TMR = 255,
|
||||
};
|
||||
|
||||
/* fabric independent task management response values */
|
||||
@@ -592,6 +594,7 @@ struct se_dev_entry {
|
||||
};
|
||||
|
||||
struct se_dev_attrib {
|
||||
int emulate_model_alias;
|
||||
int emulate_dpo;
|
||||
int emulate_fua_write;
|
||||
int emulate_fua_read;
|
||||
|
||||
Reference in New Issue
Block a user