By Jonathan Corbet
July 1, 2009
O_NODE. Miklos Szeredi has
proposed a new flag
(
O_NODE) which could be passed to
open() calls. This
flag, in essence, says that the calling program wants to open the indicated
filesystem node, but doesn't want to actually
do anything with it.
With such opens, the underlying
open() file operation will not be
called, reads and writes will not be allowed, etc.
One might well wonder what the use for such an operation is. The main
motivation would appear to be to allow an application to create a file
descriptor which can be passed to other system calls - fstat(),
say, or openat(). File descriptors used in this way do not really
need access to the underlying file, so it makes sense to provide a way to
create file descriptors without that access.
O_PONIES. Rik van Riel has proposed
another new open flag (actually called O_REWRITE) which is
intended to help applications easily avoid the "zero-length files after a
crash" problem. A program could open an existing file with
O_REWRITE and get some special semantics. The new file would
exist, invisibly, alongside the existing file for as long as it remains
open; during that time, any other opens of that file would get the old
version. Once the file is closed, the kernel will rename it to the given
name in an atomic manner, ensuring that either the old version or the
(full) new version will exist should a crash happen in the middle.
This option would make it easy for application developers to rewrite
existing files without worrying about robustness. Some might respond that
it would be better to just teach those developers to use fsync(),
but, as Rik notes, "relying on application developers to get it right
seems to not have worked out well." Rik's proposal currently lacks
an accompanying patch, so it's not destined for the mainline anytime soon.
VFAT patents. As discussed elsewhere, Andrew
Tridgell has posted a new lawyer-approved patch aimed at working around
Microsoft's VFAT patents. The discussion on the lists has taken a bit of a
different course this time around; there is still some annoyance at making
changes like this to deal with the problems of the U.S. patent system, but
those voices have been relatively quiet. Not completely quiet, though;
Alan Cox said:
Putting the stuff in kernel upsets everyone who isn't under US
rule, creates situations where things cannot be discussed and
doesn't make one iota of difference to the vendors because they
will remove the code from the source tree options and all anyway -
because as has already been said it reduces risk.
Beyond that, what developers worry about is interoperability with other
VFAT implementations. Alan Cox is asking
that, if this patch goes in, the modified filesystem no longer be called
"VFAT," since, as he sees it, it's now something else. Ted Ts'o has responded that "VFAT" is a bit of a slippery
concept to begin with. It's not clear how this issue will be resolved.
Voyager's voyage. James Bottomley is a proud owner of an archaic
Voyager system; Voyager is an
x86-based architecture with a number of
quaint features - though, contrary to rumor, steam power is not among
them. It is not clear whether any Voyager-based systems are still running
outside of James's basement. Nonetheless, James has been maintaining the
Voyager architecture for years.
More recently, Voyager got kicked out when the code was broken in the
process of an x86 subarchitecture-support rewrite. When James tried to get
it put back in, x86 Ingo Molnar objected, saying that the costs of the
patch were not justified by the benefits of serving such a small user base
in the mainline kernel. In the end, Ingo rejected the patch outright, leading to what
appeared to be an unsolvable stalemate between the two developers.
Things changed about the time that Linus jumped
into the conversation:
Ingo, "absurd irrelevance" is not a reason. If it was, we'd lose about
half our filesystems etc.
Neither is "thousands of lines of code", or "it hasn't always
worked". Again, if it was, then we'd have to get rid of just about
all drivers out there.
Ingo eventually backed down on a number of
his complaints about the Voyager patches. What remains, though, is a long
list of technical problems with the Voyager tree and how it has been
managed. James has accepted those complaints as valid, and will work
toward resolving them. Before too long, Voyager owners (both of them)
should once again have full support for their beloved architecture in the
mainline kernel.
(
Log in to post comments)