On Thu, May 24, 2012 at 11:34:56AM -0000, Andreas Dilger wrote: > Currently, if e2fsck is run without the "-n" flag (i.e. it > might modify the filesystem), there is no guarantee that it will > open the filesystem with the EXCLUSIVE flag (i.e. O_EXCL) to > prevent the block device from being checked (in most cases this > means mounted, but it could also be an MD/LVM member device). > > Conversely, if e2fsck is run with "-n" (i.e. read-only), and > /etc/mtab or /proc/mounts does not report the block device as > mounted then e2fsck thinks the filesystem is unmounted. In this > case, e2fsck incorrectly sets the EXCLUSIVE flag, which causes > the check to fail, even though e2fsck is running read-only. > > To fix this, do not open with EXCLUSIVE if it is a read-only check, > and always open with EXCLUSIVE if the filesystem might be changed. > This also prevents filesystem mounts while e2fsck is running. > > Also refuse allow e2fsck to run at all if the filesystem is BUSY. > The e2fsck check_mount() was checking for MOUNTED, but not BUSY, > and it should refuse to run outright if the block device is BUSY. > The previous MOUNTED heuristics pre-date the O_EXCL reservation > by the kernel, so there could be uncertainty due to stale /etc/mtab > data, but with newer kernels a busy device should never be modified. > > Signed-off-by: Andreas Dilger <adilger@xxxxxxxxxxxxx> Thanks, applied. - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html