Re: [PATCH 28/45] target: use bio op accessors

Mike Christie
2016-06-06T15:40:42Z

On 06/06/2016 01:46 AM, Hannes Reinecke wrote:
> On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
>> From: Mike Christie <mchristi@redhat.com>
>>
>> Separate the op from the rq_flag_bits and have the target layer
>> set/get the bio using bio_set_op_attrs/bio_op.
>>
>> Signed-off-by: Mike Christie <mchristi@redhat.com>
>> ---
>> drivers/target/target_core_iblock.c | 29 ++++++++++++++---------------
>> drivers/target/target_core_pscsi.c | 2 +-
>> 2 files changed, 15 insertions(+), 16 deletions(-)
>>
>> diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
>> index c25109c..22af12f 100644
>> --- a/drivers/target/target_core_iblock.c
>> +++ b/drivers/target/target_core_iblock.c
> [ .. ]
>> @@ -689,18 +690,15 @@ iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
>> * Force writethrough using WRITE_FUA if a volatile write cache
>> * is not enabled, or if initiator set the Force Unit Access bit.
>> */
>> + op = REQ_OP_WRITE;
>> if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
>> if (cmd->se_cmd_flags & SCF_FUA)
>> - rw = WRITE_FUA;
>> + op_flags = WRITE_FUA;
>> else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
>> - rw = WRITE_FUA;
>> - else
>> - rw = WRITE;
>> - } else {
>> - rw = WRITE;
>> + op_flags = WRITE_FUA;
>> }
> Wrong intendation.

It should be ok. That line is for the QUEUE_FLAG_WC test. We end up with:

op = REQ_OP_WRITE;
if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
if (cmd->se_cmd_flags & SCF_FUA)
op_flags = WRITE_FUA;
else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
op_flags = WRITE_FUA;