patch-2.2.9 linux/drivers/block/ide.c
Next file: linux/drivers/scsi/aha152x.c
Previous file: linux/drivers/block/ide-dma.c
Back to the patch index
Back to the overall index
- Lines: 33
- Date:
Wed May 12 13:19:32 1999
- Orig file:
v2.2.8/linux/drivers/block/ide.c
- Orig date:
Tue May 11 13:10:28 1999
diff -u --recursive --new-file v2.2.8/linux/drivers/block/ide.c linux/drivers/block/ide.c
@@ -1696,6 +1696,7 @@
ide_hwgroup_t *hwgroup;
int irq_count = 0, unit, i;
unsigned long flags;
+ unsigned int p, minor;
if (index >= MAX_HWIFS)
return;
@@ -1714,6 +1715,24 @@
goto abort;
}
hwif->present = 0;
+
+ /*
+ * All clear? Then blow away the buffer cache
+ */
+ sti();
+ for (unit = 0; unit < MAX_DRIVES; ++unit) {
+ drive = &hwif->drives[unit];
+ minor = drive->select.b.unit << PARTN_BITS;
+ for (p = 0; p < (1<<PARTN_BITS); ++p) {
+ if (drive->part[p].nr_sects > 0) {
+ kdev_t devp = MKDEV(hwif->major, minor+p);
+ struct super_block * sb = get_super(devp);
+ if (sb) invalidate_inodes(sb);
+ invalidate_buffers (devp);
+ }
+ }
+ }
+ cli();
hwgroup = hwif->hwgroup;
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)