Re: [PATCH] target/iblock: Fix WCE=1 + DPOFUA=1 backend WRITE regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 15/05/13 07:36, Nicholas A. Bellinger wrote:
> From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> 
> This patch fixes a regression bug introduced in v3.9-rc1 where if the
> underlying struct block_device for a IBLOCK backend is configured with
> WCE=1 + DPOFUA=1 settings, the rw = WRITE assignment no longer occurs
> in iblock_execute_rw(), and rw = 0 is passed to iblock_submit_bios()
> in effect causing a READ bio operation to occur.
> 
> The offending commit is:
> 
> commit d0c8b259f8970d39354c1966853363345d401330
> Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> Date:   Tue Jan 29 22:10:06 2013 -0800
> 
>     target/iblock: Use backend REQ_FLUSH hint for WriteCacheEnabled status
> 
> Note the WCE=1 + DPOFUA=0, WCE=0 + DPOFUA=1, and WCE=0 + DPOFUA=0 cases
> are not affected by this regression bug.
> 
> Reported-by: Chris Boot <bootc@xxxxxxxxx>
> Cc: Chris Boot <bootc@xxxxxxxxx>
> Reported-by: Hannes Reinecke <hare@xxxxxxx>
> Cc: Hannes Reinecke <hare@xxxxxxx>
> Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> ---
>  drivers/target/target_core_iblock.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
> index 07f5f94..aa1620a 100644
> --- a/drivers/target/target_core_iblock.c
> +++ b/drivers/target/target_core_iblock.c
> @@ -615,6 +615,8 @@ iblock_execute_rw(struct se_cmd *cmd)
>  				rw = WRITE_FUA;
>  			else if (!(q->flush_flags & REQ_FLUSH))
>  				rw = WRITE_FUA;
> +			else
> +				rw = WRITE;
>  		} else {
>  			rw = WRITE;
>  		}
> 

Tested-by: Chris Boot <bootc@xxxxxxxxx>

This fixes the problem for me completely. Thanks!

Chris

-- 
Chris Boot
bootc@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux