Re: [PATCH 1/2] fs: add SEEK_HOLE and SEEK_DATA flags
From: Valdis . Kletnieks
Date: Sun Apr 24 2011 - 23:12:31 EST
On Thu, 21 Apr 2011 15:42:33 EDT, Josef Bacik said:
> -SEEK_HOLE: this moves the file pos to the nearest hole in the file from the
> given position.
Do we want the semantic to be "the nearest" hole? Or did we really want "the
next" hole? Loops like a bullet loaded in the chamber and pointed at the
programmer's foot if they aren't allowing for the fact that this can go
*backwards* in the file if the closest hole is towards the beginning. Good way
to end up in an infinite loop or other messy...
Consider the obvious implementation of "skip over a hole" - lseek(SEEK_HOLE),
lseek(SEEK_DATA). and start reading data because we've skipped over the hole.
Wrong - the second seek may have gone backwards if the data was only 4K away
but the hole was 64K in size...
Attachment:
pgp00000.pgp
Description: PGP signature