[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120528145100.GA21422@thunk.org>
Date: Mon, 28 May 2012 10:51:00 -0400
From: Ted Ts'o <tytso@....edu>
To: Andreas Dilger <adilger@...mcloud.com>
Cc: linux-ext4@...r.kernel.org
Subject: Re: e2fsck: fix checks done for mounted vs. read-only
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@...mcloud.com>
Thanks, applied.
- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists