Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Mar 2002 18:32:19 +0100
From:      Christoph Hellwig <hch@caldera.de>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        AQUAMAN <yoatl@yahoo.com>, freebsd-fs@FreeBSD.ORG
Subject:   Re: filesystems compatibility
Message-ID:  <20020314183219.A28415@caldera.de>
In-Reply-To: <3C8E72A3.6E9CBC6F@mindspring.com>; from tlambert2@mindspring.com on Tue, Mar 12, 2002 at 01:26:59PM -0800
References:  <20020312185747.98993.qmail@web13305.mail.yahoo.com> <3C8E72A3.6E9CBC6F@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 12, 2002 at 01:26:59PM -0800, Terry Lambert wrote:
> It's really hard to answer these kinds of questions exhaustively,
> since Linux has the bad habit of changing things about the on
> disk layout of FS data, and not changing the name of the FS;
> there are at least six incompatible hacks on EXT2FS since the
> first EXT2FS, and knowing which one you have is an exercise in
> detective work.
>
> [snip]

Terry,

could you _please_ check the facts before you are going to tell the
world fs myth over and over?

Unlike FFS/UFS which has at least a dozen incompatible derivates ext2
was designed with extensibility in mind.  If you would care to actually
look at the ext2 superblock definition you would notice two things:

 1) a revision level (s_rev_level)
 2) 3 feature flags (s_feature_compat, s_feature_incompat,
 	s_feature_ro_compat)

The first is used for global filesystem revisioning and so far has only
two allowed values, EXT2_GOOD_OLD_REV for very very old filesystems from
Linux 0.x days and EXT2_DYNAMIC_REV which is used for any current
filesystem.  The feature flags (which did not exist in EXT2_GOOD_OLD_REV)
allow fine-graded and backwards compatible extension to the filesystem
layout without messing up other implementation like it has happened with
UFS.  The first set of flags, called compatible are extensions that can
be ignored by implementation that do not know about them, they have a
meaning only for fsck, examples are directory preallocation or the
presence of a journal inode for the Linux 'ext3' driver.  The second
set, called 'ro_compat' is for layout changes that can be mounted r/o
by old drivers, an example are the sparse superblocks introduced in
Linux 2.2's ext2 driver.  The third set is for layout changes that need
support from the driver for both reading and writing, examples is
the 4.4BSD-style dirent layout ext2 can use optionally or and filesystem
with an unrecovered log written by the Linux ext3 driver.


> I think the only one in common for all three Linux distributions,
> that doesn't have local hacks, with be EXT2FS.  FreeBSD can read
> and write EXT2FS, as long as you aren't using local hacks (last
> time I checked this, a long time ago, I admit, FreeBSD did not
> support the RedHat hack for sparse superblocks, and neither did
> Debian).

Sparse superblocks is a feature introduced in Linux 2.2 and thus
supported by all Linux distributions having 2.2 or newer kernels
(including Debian potatoe/woody!), which was also backported to 2.0
and included in 2.0.39.

	Christoph

-- 
Of course it doesn't work. We've performed a software upgrade.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020314183219.A28415>