Rahul Sundaram wrote:
Eric Sandeen wrote:
> James Ralston wrote:
>
>> If the latter, is there an interface for fallocate() that doesn't have
>> quite as much FAIL as posix_fallocate()?
> yes, plain ol' fallocate(2), I think:
>
> #include <linux/falloc.h>
>
> long fallocate(int fd, int mode, loff_t offset, loff_t len);
>
> but you need a very recent glibc to get it:
>
>
http://sourceware.org/bugzilla/show_bug.cgi?id=7083#c1
>
> it'd be great if we could get that into F11...
>
> BTW, ext4, xfs, btrfs, and ocfs2 all support ->fallocate.
Shouldn't we getting the new glibc and file RFE's against RPM, the
torrent clients etc?
Ah, just checked and it's already in our rawhide glibc, yay :) didn't
realize that.
http://sandeen.fedorapeople.org/utilities/fallocate.c
is a simple tool to exercise it, FWIW.
One caveat: ext4 doesn't always coalesce extents, so preallocating for,
say, bittorent won't necessarily get ext4 down to tracking a single
extent; in my testing it can still have thousands of extents tracked by
the filesystem even if they are adjacent/contiguous. :( I hope to fix
that. It's still worth doing though; a thousand adjacent extents is
better than a thousand discontiguous extents.
-Eric