aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_lib.c
diff options
context:
space:
mode:
authorJens Axboe <jaxboe@fusionio.com>2011-03-01 15:04:39 -0500
committerJens Axboe <jaxboe@fusionio.com>2011-03-01 15:04:39 -0500
commit6fae9c25134baffbeeb20031479e7ff6f6d8eec0 (patch)
treec9ab89992ce5293a43cd455a81dc8a5926a28a5e /drivers/scsi/scsi_lib.c
parentc186794dbb466b45cf40f942f2d09d6d5b4b0e42 (diff)
parentf5412be599602124d2bdd49947b231dd77c0bf99 (diff)
Merge commit 'v2.6.38-rc6' into for-2.6.39/core
Conflicts: block/cfq-iosched.c Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r--drivers/scsi/scsi_lib.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 4a3842212c50..9045c52abd25 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -1278,11 +1278,10 @@ static inline int scsi_target_queue_ready(struct Scsi_Host *shost,
1278 } 1278 }
1279 1279
1280 if (scsi_target_is_busy(starget)) { 1280 if (scsi_target_is_busy(starget)) {
1281 if (list_empty(&sdev->starved_entry)) { 1281 if (list_empty(&sdev->starved_entry))
1282 list_add_tail(&sdev->starved_entry, 1282 list_add_tail(&sdev->starved_entry,
1283 &shost->starved_list); 1283 &shost->starved_list);
1284 return 0; 1284 return 0;
1285 }
1286 } 1285 }
1287 1286
1288 /* We're OK to process the command, so we can't be starved */ 1287 /* We're OK to process the command, so we can't be starved */
@@ -1978,8 +1977,7 @@ EXPORT_SYMBOL(scsi_mode_sense);
1978 * in. 1977 * in.
1979 * 1978 *
1980 * Returns zero if unsuccessful or an error if TUR failed. For 1979 * Returns zero if unsuccessful or an error if TUR failed. For
1981 * removable media, a return of NOT_READY or UNIT_ATTENTION is 1980 * removable media, UNIT_ATTENTION sets ->changed flag.
1982 * translated to success, with the ->changed flag updated.
1983 **/ 1981 **/
1984int 1982int
1985scsi_test_unit_ready(struct scsi_device *sdev, int timeout, int retries, 1983scsi_test_unit_ready(struct scsi_device *sdev, int timeout, int retries,
@@ -2006,16 +2004,6 @@ scsi_test_unit_ready(struct scsi_device *sdev, int timeout, int retries,
2006 } while (scsi_sense_valid(sshdr) && 2004 } while (scsi_sense_valid(sshdr) &&
2007 sshdr->sense_key == UNIT_ATTENTION && --retries); 2005 sshdr->sense_key == UNIT_ATTENTION && --retries);
2008 2006
2009 if (!sshdr)
2010 /* could not allocate sense buffer, so can't process it */
2011 return result;
2012
2013 if (sdev->removable && scsi_sense_valid(sshdr) &&
2014 (sshdr->sense_key == UNIT_ATTENTION ||
2015 sshdr->sense_key == NOT_READY)) {
2016 sdev->changed = 1;
2017 result = 0;
2018 }
2019 if (!sshdr_external) 2007 if (!sshdr_external)
2020 kfree(sshdr); 2008 kfree(sshdr);
2021 return result; 2009 return result;