diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-10-15 02:07:26 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-10-15 02:07:30 -0400 |
| commit | a0738a688d1105cbf8d71868a1e020c6cdf42d4c (patch) | |
| tree | 2cad553a9def773ce79b8fc793f89c0634187109 /drivers/scsi/sr.c | |
| parent | 89ccf465abe6b20d804a63ae20307970c441369d (diff) | |
| parent | a3ccf63ee643ef243cbf8918da8b3f9238f10029 (diff) | |
Merge branch 'linus' into x86/urgent
Merge reason: pull in latest, to be able to revert a patch there.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/scsi/sr.c')
| -rw-r--r-- | drivers/scsi/sr.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index eb61f7a70e1d..d6f340f48a3b 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c | |||
| @@ -684,14 +684,20 @@ static void get_sectorsize(struct scsi_cd *cd) | |||
| 684 | cd->capacity = 0x1fffff; | 684 | cd->capacity = 0x1fffff; |
| 685 | sector_size = 2048; /* A guess, just in case */ | 685 | sector_size = 2048; /* A guess, just in case */ |
| 686 | } else { | 686 | } else { |
| 687 | #if 0 | 687 | long last_written; |
| 688 | if (cdrom_get_last_written(&cd->cdi, | 688 | |
| 689 | &cd->capacity)) | 689 | cd->capacity = 1 + ((buffer[0] << 24) | (buffer[1] << 16) | |
| 690 | #endif | 690 | (buffer[2] << 8) | buffer[3]); |
| 691 | cd->capacity = 1 + ((buffer[0] << 24) | | 691 | /* |
| 692 | (buffer[1] << 16) | | 692 | * READ_CAPACITY doesn't return the correct size on |
| 693 | (buffer[2] << 8) | | 693 | * certain UDF media. If last_written is larger, use |
| 694 | buffer[3]); | 694 | * it instead. |
| 695 | * | ||
| 696 | * http://bugzilla.kernel.org/show_bug.cgi?id=9668 | ||
| 697 | */ | ||
| 698 | if (!cdrom_get_last_written(&cd->cdi, &last_written)) | ||
| 699 | cd->capacity = max_t(long, cd->capacity, last_written); | ||
| 700 | |||
| 695 | sector_size = (buffer[4] << 24) | | 701 | sector_size = (buffer[4] << 24) | |
| 696 | (buffer[5] << 16) | (buffer[6] << 8) | buffer[7]; | 702 | (buffer[5] << 16) | (buffer[6] << 8) | buffer[7]; |
| 697 | switch (sector_size) { | 703 | switch (sector_size) { |
