lkml.org 
[lkml]   [2007]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/5] fallocate() implementation in i86, x86_64 and powerpc
    On Tue, Jun 12, 2007 at 11:46:52AM +0530, Amit K. Arora wrote:
    > Did you get time to write the above man page ? It will help to push
    > further patches in time (eg. for FA_PREALLOCATE mode).

    First pass is attached.

    `nroff -man fallocate.2 | less` to view.

    Cheers,

    Dave.
    --
    Dave Chinner
    Principal Engineer
    SGI Australian Software Group
    .TH fallocate 2
    .SH NAME
    fallocate \- allocate or remove file space
    .SH SYNOPSIS
    .nf
    .B #include <sys/syscall.h>
    .PP
    .BI "int syscall(int, int fd, int mode, loff_t offset, loff_t len);
    .Op
    .SH DESCRIPTION
    The
    .BR fallocate
    syscall allows a user to directly manipulate the allocated disk space
    for the file referred to by
    .I fd
    for the byte range starting at
    .IR offset
    and continuing for
    .IR len
    bytes.
    The
    .I mode
    parameter determines the operation to be performed on the given range.
    Currently there are three modes:
    .TP
    .B FA_ALLOCATE
    allocates and initialises to zero the disk space within the given range.
    After a successful call, subsequent writes are guaranteed not to fail because
    of lack of disk space. If the size of the file is less than
    IR offset + len ,
    then the file is increased to this size; otherwise the file size is left
    unchanged.
    B FA_ALLOCATE
    closely resembles
    B posix_fallocate(3)
    and is intended as a method of optimally implementing this function.
    B FA_ALLOCATE
    may allocate a larger range that was specified.
    TP
    B FA_PREALLOCATE
    provides the same functionality as
    B FA_ALLOCATE
    except it does not ever change the file size. This allows allocation
    of zero blocks beyond the end of file and is useful for optimising
    append workloads.
    TP
    B FA_DEALLOCATE
    removes the underlying disk space with the given range. The disk space
    shall be removed regardless of it's contents so both allocated space
    from
    B FA_ALLOCATE
    and
    B FA_PREALLOCATE
    as well as from
    B write(3)
    will be removed.
    B FA_DEALLOCATE
    shall never remove disk blocks outside the range specified.
    B FA_DEALLOCATE
    shall never change the file size. If changing the file size
    is required when deallocating blocks from an offset to end
    of file (or beyond end of file) is required,
    B ftuncate64(3)
    should be used.

    SH "RETURN VALUE"
    BR fallocate()
    returns zero on success, or an error number on failure.
    Note that
    IR errno
    is not set.
    SH "ERRORS"
    TP
    B EBADF
    I fd
    is not a valid file descriptor, or is not opened for writing.
    TP
    B EFBIG
    I offset+len
    exceeds the maximum file size.
    TP
    B EINVAL
    I offset
    or
    I len
    was less than 0.
    TP
    B ENODEV
    I fd
    does not refer to a regular file or a directory.
    TP
    B ENOSPC
    There is not enough space left on the device containing the file
    referred to by
    IR fd.
    TP
    B ESPIPE
    I fd
    refers to a pipe of file descriptor.
    B ENOSYS
    The filesystem underlying the file descriptor does not support this
    operation.
    SH AVAILABILITY
    The
    BR fallocate ()
    system call is available since 2.6.XX
    SH "SEE ALSO"
    BR syscall (2),
    BR posix_fadvise (3)
    BR ftruncate (3)
    \
     
     \ /
      Last update: 2007-06-14 01:55    [W:0.030 / U:2.744 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site