[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <03C89173-3AD1-421F-B7A0-64C999BD9DAB@cam.ac.uk>
Date: Wed, 2 May 2007 09:23:38 +0100
From: Anton Altaparmakov <aia21@....ac.uk>
To: Andreas Dilger <adilger@...sterfs.com>
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 1 May 2007, at 23:30, Andreas Dilger wrote:
> On May 01, 2007 14:22 +1000, David Chinner wrote:
>> On Mon, Apr 30, 2007 at 04:44:01PM -0600, Andreas Dilger wrote:
>>> Hmm, I'd thought "offline" would migrate to EXTENT_UNKNOWN, but I
>>> didn't
>>
>> I disagree - why would you want to indicate the state is unknown
>> when we know
>> very well that it is offline?
>
> If you don't like "UNKNOWN", what about "UNMAPPED"? I just want a
> catch-all flag that indicates "this extent contains data but there is
> nothing sensible to be returned for the extent mapping."
I like UNMAPPED. I even use it in NTFS internally for extents maps
that have not been read into memory yet. (-:
On a different issue, do you think it would be worth adding an option
flags like FIEMAP_DONT_RELOCATE or something similar that would be a
compulsory flag and if set the FS is not allowed to move the file
around/change the block allocation of the file.
My thinking is that the extent map is not terribly useful if the FS
goes and relocates the file to somewhere else just after you have
done the ioctl. For example HFS on OSX automatically defragments
files whilst it is running... Linux file systems may one day do
similar things.
Or alternatively a flag like FIEMAP_MAKE_DIRECT or something to tell
the FS we want to access the actual raw blocks so the FS can make
sure the data is on block aligned boundaries and if the FS does not
support this (e.g. ZFS or a compressed or encrypted NTFS file) then
it can return -ENOTSUP.
Perhaps this is totally the wrong interface and such a "prepare file
for direct access" API should be a different ioctl() or syscall or
whatever. It just seems very simple and appropriate to combine it
here as people who use FIEMAP are at least sometimes going to be
wanting to access those blocks directly as well and it feels right to
be able to communicate this to the FS in the same call, kind of like
an "open intent" of "I want to use the data directly on disk"...
What do you think?
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/
-
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