Subject: Discussion about a "dirty bit" in the filesystem

Hello. Sorry if this is not the correct place to talk about this.

I am writing to this list because I am a user of openSUSE that opened
filed a bug [1] against the issue tracking software of this linux
distribution about boot management and hibernation. There was a
discussion and then the bug was resolved to WONTFIX, but I think we
could extract from it a nice FEATURE that any filesystem would have, or,
in particular, ext4.

Any opinions?

Regards,

Andr?s [ knocte ]


[1] https://bugzilla.novell.com/show_bug.cgi?id=175939
--


2006-10-22 01:09:53

by Theodore Ts'o

[permalink] [raw]
Subject: Re: Discussion about a "dirty bit" in the filesystem

On Sat, Oct 21, 2006 at 09:39:02PM +0200, "Andr?s G. Aragoneses [ knocte ]" wrote:
> Hello. Sorry if this is not the correct place to talk about this.
>
> I am writing to this list because I am a user of openSUSE that opened
> filed a bug [1] against the issue tracking software of this linux
> distribution about boot management and hibernation. There was a
> discussion and then the bug was resolved to WONTFIX, but I think we
> could extract from it a nice FEATURE that any filesystem would have, or,
> in particular, ext4.
>
> [1] https://bugzilla.novell.com/show_bug.cgi?id=175939
>
> Any opinions?

I'm not at all sure what this has to do with ext4 at all. The last
message indicates a major problem with your request, which is that if
a FAT partition is mounted by Linux, and in the middle of being
modified when the system is undergoing hibernation, and then Windows
is booted and modifies the filesystem, you can lose data. But that's
because the FAT filesystem can be understood by both Windows and
Linux. (Presumably this problem would also occur, in a much worse
case, using NTFS.) But this has nothing to do with ext4.

I can imagine someone writing an improved hibernate script which
checks to see if a filesystem which could be understood by Windows
(i.e., FAT or NTFS) is mounted, and if any such filesystems are
mounted, disable the ability to boot into Windows after the
hibernation. I could even imagine an improved hibernate script which
detects this case, and attempts to unmount the FAT and NTFS
filesystems, and if it could successfully unmount them all, allow the
user to reboot into Windows after hibernation.

However, this is not a ext4 filesystem matter, and not a kernel
matter, but rather a hibernation script issue.

Regards,

- Ted

Subject: Re: Discussion about a "dirty bit" in the filesystem

Thanks for your comments Theodore.

Sorry for the delay answering this. See inline,

> I'm not at all sure what this has to do with ext4 at all. The last
> message indicates a major problem with your request, which is that if
> a FAT partition is mounted by Linux, and in the middle of being
> modified when the system is undergoing hibernation, and then Windows
> is booted and modifies the filesystem, you can lose data. But that's
> because the FAT filesystem can be understood by both Windows and
> Linux. (Presumably this problem would also occur, in a much worse
> case, using NTFS.) But this has nothing to do with ext4.

Well, forget for the moment that other filesystems exist and imagine the
same situation with ext filesystems. Implementing the "dirty" bit we
could avoid mounting a filesystem that is in use by an hibernated partition.

The feature, as is, is not very useful if it's only implemented in
ext3/ext4, but it would be a nice proof of concept and probably makes
other filesystem vendors implement the same.

> I can imagine someone writing an improved hibernate script which
> checks to see if a filesystem which could be understood by Windows
> (i.e., FAT or NTFS) is mounted, and if any such filesystems are
> mounted, disable the ability to boot into Windows after the
> hibernation. I could even imagine an improved hibernate script which
> detects this case, and attempts to unmount the FAT and NTFS
> filesystems, and if it could successfully unmount them all, allow the
> user to reboot into Windows after hibernation.

For an hibernation script to detect this, first we must implement the
feature to allow the script to detect it, so this is what I am asking for.

Perhaps now I have been clearer?

Thanks,

Andr?s [ knocte ]

--