ACK w/cmt: [Utopic][PATCH v2] UBUNTU: SAUCE: Revert "sd: don't use scsi_setup_blk_pc_cmnd for flush requests"
Chris J Arges
chris.j.arges at canonical.com
Wed Oct 1 12:16:51 UTC 2014
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 10/01/2014 02:19 AM, Stefan Bader wrote:
> On 30.09.2014 21:13, Chris J Arges wrote:
>> BugLink: http://bugs.launchpad.net/bugs/1375452
>>
>> This reverts commit 32f7682bb0f71eaf88388e05af00cbc14edc9bd7.
>> Note: this also keeps commit
>> aac35036f7ab00b8cb2a4c99b42cffb33d98aa42.
>
> I guess the rework of the function was just pulled in as a
> pre-requisite to allow the change about timeout multiplier (which
> you now kept) apply cleanly. And either we miss something that
> allows that rework or upstream has not found the issue.
I also tested upstream and it works fine. This prereq patch that was
reverted was also a batch of many patches that change how the
functions are setup and called. So I suspect we'd need to pull in all
those changes for things to work properly. However for the sake of a
stable kernel we most likely just want to pull in the fixes.
- --chris
It appears to be ok but I would hope to see the hyper-v side
> verified, too. If that is easy to do...
>
> -Stefan
>
>>
>> Signed-off-by: Chris J Arges <chris.j.arges at canonical.com>
>>
>> Conflicts: drivers/scsi/sd.c --- drivers/scsi/sd.c | 20
>> +++++++------------- 1 file changed, 7 insertions(+), 13
>> deletions(-)
>>
>> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index
>> bb77c0e..c0f54d2 100644 --- a/drivers/scsi/sd.c +++
>> b/drivers/scsi/sd.c @@ -830,20 +830,14 @@ static int
>> sd_setup_write_same_cmnd(struct scsi_device *sdp, struct request
>> *rq) return ret; }
>>
>> -static int sd_setup_flush_cmnd(struct scsi_cmnd *cmd) +static
>> int scsi_setup_flush_cmnd(struct scsi_device *sdp, struct request
>> *rq) { - struct request *rq = cmd->request; - - /* flush requests
>> don't perform I/O, zero the S/G table */ - memset(&cmd->sdb, 0,
>> sizeof(cmd->sdb)); - - cmd->cmnd[0] = SYNCHRONIZE_CACHE; -
>> cmd->cmd_len = 10; - cmd->transfersize = 0; - cmd->allowed =
>> SD_MAX_RETRIES; - rq->timeout = rq->q->rq_timeout *
>> SD_FLUSH_TIMEOUT_MULTIPLIER; - return BLKPREP_OK; + rq->retries =
>> SD_MAX_RETRIES; + rq->cmd[0] = SYNCHRONIZE_CACHE; + rq->cmd_len =
>> 10; + + return scsi_setup_blk_pc_cmnd(sdp, rq); }
>>
>> static void sd_uninit_command(struct scsi_cmnd *SCpnt) @@ -883,7
>> +877,7 @@ static int sd_init_command(struct scsi_cmnd *SCpnt) ret
>> = sd_setup_write_same_cmnd(sdp, rq); goto out; } else if
>> (rq->cmd_flags & REQ_FLUSH) { - ret =
>> sd_setup_flush_cmnd(SCpnt); + ret = scsi_setup_flush_cmnd(sdp,
>> rq); goto out; } ret = scsi_setup_fs_cmnd(sdp, rq);
>>
>
>
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAEBAgAGBQJUK/CzAAoJEPNFAiJniEz2iA8IAIWEeoiuLGXQoFff53qV5+g7
e8BaCI5pU2C7cAF434M4oZS9ZAumuIRKT4CkNoM+UpAt86ooCmZw/2+hL/VBV9qm
GL6JAx0XjHbX1Xe6LvywrhtZ+todWqm+v/3IASemU444dM/OhlQE+Iz2Oc8corLE
/kTftDJ8+7Ml9P6JQ5P+01QUMAvbak7ZlFEl3J9cqH8pHkkXzSesX6JkbJvbPIAI
SZ1ioWxGu63C/m7ww/6kISu9/s4U1AOdFbVVaohtboM+Mtp789BS8M1Ysi043CGv
jUXWaZsUJuYMCJ5ajayO4z2VY7UVyc1LaWSr1AfsAoxYYLaMiEtb9WIU+4snAiY=
=+YlO
-----END PGP SIGNATURE-----
More information about the kernel-team
mailing list