From c2163a721d8c159b9647abc2a43241910045410d Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Wed, 25 Feb 2009 20:28:23 +0100 Subject: [PATCH] --- yaml --- r: 131771 b: refs/heads/master c: d3dd7107f4d843d0f01d0f77d49a7c5449130577 h: refs/heads/master i: 131769: 29933625640250298ffee33acb51fc5fec3899b5 131767: 3b1aabafa93d96cc5a5ba43bee5e3f7cf72a6ecd v: v3 --- [refs] | 2 +- trunk/drivers/ide/ide-cd.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5e732562d20b..d3014afb03cf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f38344b0a0898d2a8c13581ee61007719e16e1d7 +refs/heads/master: d3dd7107f4d843d0f01d0f77d49a7c5449130577 diff --git a/trunk/drivers/ide/ide-cd.c b/trunk/drivers/ide/ide-cd.c index 0bfeb0c79d6e..690475b834de 100644 --- a/trunk/drivers/ide/ide-cd.c +++ b/trunk/drivers/ide/ide-cd.c @@ -194,6 +194,14 @@ static void cdrom_analyze_sense_data(ide_drive_t *drive, bio_sectors = max(bio_sectors(failed_command->bio), 4U); sector &= ~(bio_sectors - 1); + /* + * The SCSI specification allows for the value + * returned by READ CAPACITY to be up to 75 2K + * sectors past the last readable block. + * Therefore, if we hit a medium error within the + * last 75 2K sectors, we decrease the saved size + * value. + */ if (sector < get_capacity(info->disk) && drive->probed_capacity - sector < 4 * 75) set_capacity(info->disk, sector);