Resizing block devices that are in use

From: Lasse Kärkkäinen
Date: Wed Nov 12 2008 - 12:44:20 EST


Currently the kernel does not seem to resize SCSI devices when rescan is done, if the device is in use (e.g. there's a filesystem mounted on it). Additionally, it also won't resize it if rescan (changing size in hardware) is done first while mounted and then the device is unmounted, even if rescan is attempted again.

Steps to reproduce:
1. mount a filesystem on a SCSI device
2. resize the disk (e.g. grow hardware RAID array)
3. echo 1 > "/sys/bus/scsi/devices/0:0:1:0"
4. unmount the filesystem
5. echo 1 > "/sys/bus/scsi/devices/0:0:1:0" again
6. the size of the device (e.g. /dev/sdb) still hasn't changed

A preferrable solution (to me) would be to resize the device as soon as rescan is done, no matter if it is in use or not. It will fix the bug and the "feature" both at the same time.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/