Re: [PATCH 0/5][TAKE2] fallocate system call

Andreas Dilger
2007-05-15T06:31:31Z

On May 14, 2007 18:59 +0530, Amit K. Arora wrote:
> asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len)
>
> fd: The descriptor of the open file.
>
> mode*: This specifies the behavior of the system call. Currently the
> system call supports two modes - FA_ALLOCATE and FA_DEALLOCATE.
> FA_ALLOCATE: Applications can use this mode to preallocate blocks to
> a given file (specified by fd). This mode changes the file size if
> the preallocation is done beyond the EOF. It also updates the
> ctime/mtime in the inode of the corresponding file, marking a
> successfull allocation.
> FA_DEALLOCATE: This mode can be used by applications to deallocate the
> previously preallocated blocks. This also may change the file size
> and the ctime/mtime.
> * New modes might get added in future. One such new mode which is
> already under discussion is FA_PREALLOCATE, which when used will
> preallocate space but will not change the filesize and [cm]time.
> Since the semantics of this new mode is not clear and agreed upon yet,
> this patchset does not implement it currently.
>
> offset: This is the offset in bytes, from where the preallocation should
> start.
>
> len: This is the number of bytes requested for preallocation (from
> offset).

What is the return value? I'd hope it is the number of bytes preallocated,
in case of interrupted preallocation for whatever reason (interrupt, out of
space, etc) like a regular write(2) call. In this case the return type needs
to also be an loff_t to match @len.

Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.