Eric Blake wrote: > On 04/24/2011 11:49 AM, Jamie Lokier wrote: > >> My problem with FIND_* is that we are messing with the well understood > >> semantics of lseek(). > > > > fcntl() looks a better fit for FIND_HOLE/DATA anyway. > > With fcntl(), it would have to be something like: > > off_t offset = start; > if (fcntl (fd, F_FIND_HOLE, &offset) != 0) > ; // find failed > // offset is now set to the next location after start Yes that, or a pointer-to-struct in the style of other fcntl() operations. A struct offers more flexibiliy such as a limit on search distance (may be useful on filesystems where searching reads a lot of metadata and you don't really want to scan all of a large file), and whether to include unwritten prealloc space or written-known-zeros space. I thought of fcntl() because historically it's often how you get quirky information about files and how to read them, on many OSes. -- Jamie -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html