Re: [RFC] Heads up on sys_fallocate()
From: Arnd Bergmann <arnd@arndb.de>
Date: 2007-03-05 00:36:36
Also in:
linux-fsdevel, lkml
From: Arnd Bergmann <arnd@arndb.de>
Date: 2007-03-05 00:36:36
Also in:
linux-fsdevel, lkml
On Monday 05 March 2007, Jörn Engel wrote:
That actually causes an interesting problem for compressing filesystems. The space consumed by blocks depends on their contents and how well it compresses. At the moment, the only option I see to support posix_fallocate for LogFS is to set an inode flag disabling compression, then allocate the blocks. But if the file already contains large amounts of compressed data, I have a problem. Disabling compression for a range within a file is not supported, so I can only return an error. But which one?
Using the current glibc implementation on a compressed file system ideally should be a very expensive no-op because you won't actually allocate much space for a file when writing zeroes to it. You also don't benefit of a contiguous allocation in logfs, since flash has uniform seek times over all the medium. I'd suggest you implement posix_fallocate as an real nop and just return success without doing anything. You could also return ENOSPC in case the blocks requested by posix_fallocate don't fit on the medium without compression, but that is more or less just guesswork (like statfs is). Arnd <><