aboutsummaryrefslogtreecommitdiff
path: root/drivers/ide/ide-gd.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-11-03 08:57:41 +0100
committerIngo Molnar <mingo@elte.hu>2008-11-03 08:57:41 +0100
commitdb5935001a43528e673ad26ffec9d98c60a496a9 (patch)
tree8e735327a97beccabb5d94ef93df25d2bacda705 /drivers/ide/ide-gd.c
parent34f3a814eef8069a24e5b3ebcf27aba9dabac2ea (diff)
parent45beca08dd8b6d6a65c5ffd730af2eac7a2c7a03 (diff)
Merge commit 'v2.6.28-rc3' into sched/core
Diffstat (limited to 'drivers/ide/ide-gd.c')
-rw-r--r--drivers/ide/ide-gd.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ide/ide-gd.c b/drivers/ide/ide-gd.c
index 7b666285437..b8078b3231f 100644
--- a/drivers/ide/ide-gd.c
+++ b/drivers/ide/ide-gd.c
@@ -281,7 +281,12 @@ static int ide_gd_media_changed(struct gendisk *disk)
static int ide_gd_revalidate_disk(struct gendisk *disk)
{
struct ide_disk_obj *idkp = ide_drv_g(disk, ide_disk_obj);
- set_capacity(disk, ide_gd_capacity(idkp->drive));
+ ide_drive_t *drive = idkp->drive;
+
+ if (ide_gd_media_changed(disk))
+ drive->disk_ops->get_capacity(drive);
+
+ set_capacity(disk, ide_gd_capacity(drive));
return 0;
}