Re: Things to do this week instead of arguing about mixers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Pádraig Brady wrote:
> Eric Sandeen wrote:
>> Now that we have ext4 as the new default filesystem, it'd be nice if we
>> can get more applications to take advantage of some of the features.
>>
>> One big feature that has already been brought up on the list[1] is file
>> preallocation, which allows an application to pre-allocate blocks it
>> knows that it will eventually write into, thereby making sure it won't
>> run out of space, and also generally getting a more efficient/contiguous
>> file layout.
>>
> 
> [snip]
> 
>> fallocate(2):
>> long fallocate(int fd, int mode, loff_t offset, loff_t len);
>>
>> This is directly wired to the syscall, so only succeeds on filesystems
>> that support it.  It also takes a FALLOC_FL_KEEP_SIZE mode argument,
>> which allows one to allocate blocks without updating the file size if
>> desired (blocks can then be allocated past EOF).  This call is only
>> wired up in very recent glibc, but it is available in F11.
> 
> I tried using fallocate() on glibc-2.9.90-22.
> The man-pages are out of date and say the glibc interface is not available,

oops :)  Mind filing a bug on that against man-pages?

> but from inspecting the headers I came up with the test prog below.
> However I get a link error if I uncomment #define _FILE_OFFSET_BITS 64.
> What am I missing?

on which arch?  what's the link error?

Thanks,
-Eric

> cheers,
> Pádraig.
> 
> //#define _FILE_OFFSET_BITS 64
> #define _GNU_SOURCE
> #include <fcntl.h>
> #include <linux/falloc.h>
> 
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <sys/types.h>
> #include <inttypes.h>
> 
> int main (int argc, char** argv)
> {
>     char* endptr;
>     off_t len = strtoll(argv[1], &endptr, 10);
>     fprintf(stderr, "setting to %jd\n", (intmax_t)len);
>     int ret = fallocate(1, 0, 0, len);
>     fprintf(stderr, "ret=%d (%s)\n", ret, strerror(ret));
> }
> 
> 
> 

-- 
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux