From 9d93d6f77635347542d44aa3e3bdc0b5e3ca70aa Mon Sep 17 00:00:00 2001 From: James Bottomley Date: Tue, 8 Nov 2005 09:21:07 -0500 Subject: [PATCH] --- yaml --- r: 13948 b: refs/heads/master c: c0ed79a331caa68ac027dd6afc02bb5b58ef2798 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/sd.c | 22 +++++++++------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index 3cd36d353530..44d0eb5fb51b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2ef8919830a262f10fb5e4a685e95f71a64bce6c +refs/heads/master: c0ed79a331caa68ac027dd6afc02bb5b58ef2798 diff --git a/trunk/drivers/scsi/sd.c b/trunk/drivers/scsi/sd.c index bb5b242ac6b4..8613a1317712 100644 --- a/trunk/drivers/scsi/sd.c +++ b/trunk/drivers/scsi/sd.c @@ -769,20 +769,16 @@ static void sd_end_flush(request_queue_t *q, struct request *flush_rq) static int sd_prepare_flush(request_queue_t *q, struct request *rq) { struct scsi_device *sdev = q->queuedata; - struct scsi_disk *sdkp = scsi_disk_get_from_dev(&sdev->sdev_gendev); - int ret = 0; + struct scsi_disk *sdkp = dev_get_drvdata(&sdev->sdev_gendev); - if (sdkp) { - if (sdkp->WCE) { - memset(rq->cmd, 0, sizeof(rq->cmd)); - rq->flags |= REQ_BLOCK_PC | REQ_SOFTBARRIER; - rq->timeout = SD_TIMEOUT; - rq->cmd[0] = SYNCHRONIZE_CACHE; - ret = 1; - } - scsi_disk_put(sdkp); - } - return ret; + if (!sdkp || !sdkp->WCE) + return 0; + + memset(rq->cmd, 0, sizeof(rq->cmd)); + rq->flags |= REQ_BLOCK_PC | REQ_SOFTBARRIER; + rq->timeout = SD_TIMEOUT; + rq->cmd[0] = SYNCHRONIZE_CACHE; + return 1; } static void sd_rescan(struct device *dev)