Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Brad Boyer
Date: Wednesday, November 28, 2007 - 2:56 pm

I have a few comments. Some of them are inline with the code.

The one generic thing is that the Sun documentation specifically
says to check pathconf(_PC_MIN_HOLE_SIZE) on the filesystem to see
if it supports this request. Have you looked into adding this to
the Linux version of pathconf? I haven't tried to look at the latest
glibc, but 2.3.2 doesn't appear to have it. If we do have it, this
request should really go to the kernel to ask the individual
filesystem.  However, it looks like pathconf is entirely implemented
in glibc.  Should we add a system call or some other way to pass
pathconf requests into the kernel? I know pathconf currently returns
some inaccurate results in some cases due to this limitation. There
are some existing ones like _PC_LINK_MAX that glibc tries to guess
the correct result based on statfs and can get wrong in any
non-standard setup.

	Brad Boyer
	flar@allandria.com

On Wed, Nov 28, 2007 at 03:02:07PM -0500, Josef Bacik wrote:

It looks like this function can return an offset that is before the
one passed in as an argument due to losing the lower bits. I think
it needs to do somthing more like this in the loop initializer:

    block = (offset + (1 << inode->i_blkbits) - 1) >> inode->i_blkbits;

By adding 1 block if it wasn't already on an even block, this assures
us that it won't go backwards from the original offset while allowing
someone to get a block that really does start exactly on the offset.


Why is SEEK_HOLE special in this case? The description of SEEK_HOLE
and SEEK_DATA in the Sun document would imply to me that they should
be handled the same.

-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Josef Bacik, (Wed Nov 28, 1:02 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Brad Boyer, (Wed Nov 28, 2:56 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Nicholas Miell, (Wed Nov 28, 3:56 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Josef Bacik, (Wed Nov 28, 4:33 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Josef Bacik, (Wed Nov 28, 4:38 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Andreas Dilger, (Wed Nov 28, 4:39 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Andreas Dilger, (Wed Nov 28, 4:49 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Nicholas Miell, (Wed Nov 28, 4:50 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Nicholas Miell, (Wed Nov 28, 5:06 pm)
Re: [RFC][PATCH] Implement SEEK_HOLE/SEEK_DATA, Andreas Dilger, (Wed Nov 28, 8:27 pm)