[Drbd-dev] [PATCH 28/45] target: use bio op accessors

Mike Christie mchristi at redhat.com
Mon Jun 6 17:40:35 CEST 2016


On 06/06/2016 01:46 AM, Hannes Reinecke wrote:
> On 06/05/2016 09:32 PM, mchristi at redhat.com wrote:
>> From: Mike Christie <mchristi at 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 at 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;
}






More information about the drbd-dev mailing list