diff options
author | Christoph Hellwig | 2011-11-03 22:50:41 +0100 |
---|---|---|
committer | Nicholas Bellinger | 2011-11-04 09:00:17 +0100 |
commit | 617c0e06c1b30b799d8b25f92eefdc1b098cb9f8 (patch) | |
tree | c256c38e2bbf9fb1a17cd5d821efca0839060821 /drivers/target/target_core_transport.c | |
parent | target: split core_scsi2_emulate_crh (diff) | |
download | kernel-qcow2-linux-617c0e06c1b30b799d8b25f92eefdc1b098cb9f8.tar.gz kernel-qcow2-linux-617c0e06c1b30b799d8b25f92eefdc1b098cb9f8.tar.xz kernel-qcow2-linux-617c0e06c1b30b799d8b25f92eefdc1b098cb9f8.zip |
target: split core_scsi3_emulate_pr
Split core_scsi2_emulate_crh into one routine each for the
PERSISTENT_RESERVE_IN and PERSISTENT_RESERVE_OUT side.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/target_core_transport.c')
-rw-r--r-- | drivers/target/target_core_transport.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index f4232934bac5..717f84a9b42b 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -2842,11 +2842,14 @@ static int transport_generic_cmd_sequencer( cmd->se_cmd_flags |= SCF_SCSI_CONTROL_SG_IO_CDB; break; case PERSISTENT_RESERVE_IN: + if (su_dev->t10_pr.res_type == SPC3_PERSISTENT_RESERVATIONS) + cmd->transport_emulate_cdb = target_scsi3_emulate_pr_in; + size = (cdb[7] << 8) + cdb[8]; + cmd->se_cmd_flags |= SCF_SCSI_CONTROL_SG_IO_CDB; + break; case PERSISTENT_RESERVE_OUT: - cmd->transport_emulate_cdb = - (su_dev->t10_pr.res_type == - SPC3_PERSISTENT_RESERVATIONS) ? - core_scsi3_emulate_pr : NULL; + if (su_dev->t10_pr.res_type == SPC3_PERSISTENT_RESERVATIONS) + cmd->transport_emulate_cdb = target_scsi3_emulate_pr_out; size = (cdb[7] << 8) + cdb[8]; cmd->se_cmd_flags |= SCF_SCSI_CONTROL_SG_IO_CDB; break; |