From d80e6b884fa585add1f29730282939d895b243e9 Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Fri, 17 Oct 2008 18:09:12 +0200 Subject: [PATCH] --- yaml --- r: 116312 b: refs/heads/master c: cedd120cac61fa149ba215eabc57b2578068be00 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/ide/ide-gd.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 7ae209fb8bcb..9fc1c7462c45 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5fef0e5c0283949f95a7891c9424a9f84448116b +refs/heads/master: cedd120cac61fa149ba215eabc57b2578068be00 diff --git a/trunk/drivers/ide/ide-gd.c b/trunk/drivers/ide/ide-gd.c index 84bbcfee9233..c08500270b9d 100644 --- a/trunk/drivers/ide/ide-gd.c +++ b/trunk/drivers/ide/ide-gd.c @@ -160,6 +160,7 @@ static int ide_gd_open(struct inode *inode, struct file *filp) * and the door_lock is irrelevant at this point. */ ide_disk_set_doorlock(drive, 1); + drive->dev_flags |= IDE_DFLAG_MEDIA_CHANGED; check_disk_change(inode->i_bdev); } return 0; @@ -199,6 +200,7 @@ static int ide_gd_media_changed(struct gendisk *disk) { struct ide_disk_obj *idkp = ide_drv_g(disk, ide_disk_obj); ide_drive_t *drive = idkp->drive; + int ret; /* do not scan partitions twice if this is a removable device */ if (drive->dev_flags & IDE_DFLAG_ATTACH) { @@ -206,8 +208,10 @@ static int ide_gd_media_changed(struct gendisk *disk) return 0; } - /* if removable, always assume it was changed */ - return !!(drive->dev_flags & IDE_DFLAG_REMOVABLE); + ret = !!(drive->dev_flags & IDE_DFLAG_MEDIA_CHANGED); + drive->dev_flags &= ~IDE_DFLAG_MEDIA_CHANGED; + + return ret; } static int ide_gd_revalidate_disk(struct gendisk *disk)