Re: Agenda for ext3 developer interlock call (June 21th, 2006, 8:00PCT)

Theodore Tso <[email protected]>
Newsgroups gmane.comp.file-systems.ext2.devel
Message-ID <[email protected]>
Proposal for ext2/3 future development work
===========================================

On last week's ext2/3 developer's conference call, I took an action
item to write up a summary of the proposal we had discussed.  Once we
gain consensus on the ext2-devel, we will submit it to LKML to see if
there are any objections with the path that we have planned.

Given the recent discussion on LKML, it is clear that many people feel
they have a stake in the future development plans of the ext2/ext3
filesystem, as it one of the most popular and commonly used
filesystems, particular amongst the kernel development community.  For
this reason, the stakes are higher than it would be for other
filesystems.  The concerns that were expressed can be summarized in
the following points:

	* Stability.  There is a concern that while we are adding new
		features, bugs might cause developers to lose work.
		This is particularly a concern given that 2.6 is a
		"stable" kernel series, but traditionally ext2/3
		developers have been very careful even during
		development series since kernel developers tend to get
		cranky when all of their filesystems get trashed.

	* Compatibility confusion.  While the ext2/3 superblock does
		have a very flexible and powerful system for
		indicating forwards and backwards compatibility, the
		possibility of user confusion has caused concern by
		some, to the point where there has been one proposal
		to deliberately break forwards compatibility in order
		to remove possible confusion about backwards
		compatibility.  This seems to be going too far,
		although we do need to warn against kernel and
		distribution-level code from blindly upgrading users'
		filesystems and removing the ability for those
		filesystems to be mounted on older systems without an
		explicit user approval step, preferably with tools
		that allow for easy upgrading and downgrading.

	* Code complexity.  There is a concern that unless the code is
		properly factored, that it may become difficult to
		read due to a lot of conditionals to support older
		filesystem formats.

Unfortunately, these various concerns were sometimes mixed together in
the discussion two months ago, and so it was hard to make progress.
Linus's concern seems to have been primarily the first point, with
perhaps a minor consideration of the 3rd.  Others dwelled very heavily
on the second point.

To address these issues, the ext2/3 developers would like to propose
the following path forward.

1) The creation of a new filesystem codebase in the 2.6 kernel tree in
/usr/src/linux/fs/ext4 that will initially register itself as the
"ext3dev" filesystem.  This will be explicitly marked as an
CONFIG_EXPERIMENTAL filesystem, and will in affect be a "development
fork" of ext3.  A similar split of the fs/jbd will be made in order to
support 64-bit jbd, which will be used by fs/ext4 and future versions
of ocfs2.

2) Bug fixes to fix 32-bit cleanliness issues, security/oops problems
will go into fs/ext3, but all new development work will go into
fs/ext4.  There is some question about whether relatively low risk
features such as slimming the extX in-core memory structure, and
delayed allocation for ext3, which have no format impacts, should go
into fs/ext3, or whether such enhancement should only benefit fs/ext4
users.  This is a cost/benefit tradeoff for which the guidance of the
LKML community about whether the loss in code stability is worth the
improvements to current ext3 users, given the existence of the
development branch.

3) The ext4 code base will continue to mount older ext3 filesystems,
as this is necessary to ensure a future smooth upgrade path from ext3
to ext4 users.  In addition, once a feature is added to the ext3dev
filesystem, a huge amount of effort will be made to provide continuing
support for the filesystem format enhancements going forward, just as
we do with the syscall ABI.  (Emergencies might happen if we make a
major mistake and paint ourselves into a corner; but just as with
changes to the kernel/userspace ABI, if there is some question about
whether or not a particular filesystem format can be supported going
forward indefinitely, we will not push changes into the mainline
kernel until we are can be confident on this point.)

4) At some point, probably in 6-9 months when we are satisified with
the set of features that have been added to fs/ext4, and confident as
to their reliability, we will submit a patch which causes the fs/ext4
code to register itself as the ext4 filesystem.  At that point, we may
also request that fs/ext3 be deleted and that fs/ext4 register itself
as supporting the ext3 filesystem as well.

Comments?

							- Ted

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.