[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070501142049.GG77450368@melbourne.sgi.com>
Date: Wed, 2 May 2007 00:20:49 +1000
From: David Chinner <dgc@....com>
To: Nicholas Miell <nmiell@...cast.net>
Cc: David Chinner <dgc@....com>, linux-ext4@...r.kernel.org,
linux-fsdevel@...r.kernel.org, xfs@....sgi.com, hch@...radead.org
Subject: Re: [RFC] add FIEMAP ioctl to efficiently map file allocation
On Mon, Apr 30, 2007 at 09:39:06PM -0700, Nicholas Miell wrote:
> On Tue, 2007-05-01 at 14:22 +1000, David Chinner wrote:
> > On Mon, Apr 30, 2007 at 04:44:01PM -0600, Andreas Dilger wrote:
> > > This is actually for future use. Any flags that are added into this
> > > range must be understood by both sides or it should be considered an
> > > error. Flags outside the FIEMAP_FLAG_INCOMPAT do not necessarily need
> > > to be supported. If it turns out that 8 bits is too small a range for
> > > INCOMPAT flags, then we can make 0x01000000 an incompat flag that means
> > > e.g. 0x00ff0000 are also incompat flags also.
> >
> > Ah, ok. So it's not really a set of "compatibility" flags, it's more a
> > "compulsory" set. Under those terms, i don't really see why this is
> > necessary - either the filesystem will understand the flags or it will
> > return EINVAL or ignore them...
> >
> > > I'm assuming that all flags that will be in the original FIEMAP proposal
> > > will be understood by the implementations. Most filesystems can safely
> > > ignore FLAG_HSM_READ, for example, since they don't support HSM, and for
> > > that matter FLAG_SYNC is probably moot for most filesystems also because
> > > they do block allocation at preprw time.
> >
> > Exactly my point - so why do we really need to encode a compulsory set of
> >
>
> Because flags have meaning, independent of whether or not the filesystem
> understands them. And if the filesystem chooses to ignore critically
> important flags (instead of returning EINVAL), bad things may happen.
>
> So, either the filesystem will understand the flag or iff the unknown flag
> is in the incompat set, it will return EINVAL or else the unknown flag will
> be safely ignored.
My point was that there is a difference between specification and
implementation - if the specification says something is compulsory,
then they must be implemented in the filesystem. This is easy
enough to ensure by code review - we don't need additional interface
complexity for this....
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
-
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