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

Amit K. Arora
2007-05-15T12:40:30Z

On Tue, May 15, 2007 at 12:31:21AM -0600, Andreas Dilger wrote:
> 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.

The return value in current implementation has been kept as "long" where
zero is returned for success and an error on failure. This is done to
keep it inline with posix_fallocate behavior.

This point was brought up sometime back by Badari. At that time it was
decided to keep it the way posix_fallocate is designed. Here are the
posts related to this:

Still if you feel that we should be returning number of bytes
preallocated, we can again ask for opinion here.

Thanks!
--
Regards,
Amit Arora