Re: [PATCH 1/7] manpage for fallocate

2007-07-11 Thread Amit K. Arora
On Wed, Jul 11, 2007 at 12:37:01AM +0300, Heikki Orsila wrote:
 On Wed, Jul 11, 2007 at 01:48:20AM +0530, Amit K. Arora wrote:
  .BI int syscall(int, int fd, int mode, loff_t offset, loff_t len);
 
 Correction: int syscall(int fd, int mode, ...),

Here, we have syscall() with first argument being the system call number
- so what you suggested is not correct.

But, yes, the synopsis should change at some time. Maybe to something
like:

#include fcntl.h

long fallocate(int fd, int mode, loff_t offset, loff_t len);

  .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.
 
 EINTR?

Will add following errors:

  EINTR A signal was caught during execution
  EIO   An I/O error occurred while reading from or writing to
a file system.
  EOPNOTSUPPThe mode is not supported on the file descriptor.

and will update following :

  EINVALoffset was less than 0, or len was less than or equal to 0.

--
Regards,
Amit Arora
-
To unsubscribe from this list: send the line unsubscribe linux-fsdevel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/7] manpage for fallocate

2007-07-10 Thread Amit K. Arora
Following is the modified version of the manpage originally submitted by
David Chinner. Please use `nroff -man fallocate.2 | less` to view.


.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 four modes:
.TP
.B FALLOC_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 FALLOC_ALLOCATE
closely resembles
.B posix_fallocate(3)
and is intended as a method of optimally implementing this function.
.B FALLOC_ALLOCATE
may allocate a larger range that was specified.
.TP
.B FALLOC_RESV_SPACE
provides the same functionality as
.B FALLOC_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 FALLOC_DEALLOCATE
removes any preallocated space within the given range. The file size
may change if deallocation is towards the end of the file.
.TP
.B FALLOC_UNRESV_SPACE
removes the underlying disk space within the given range. The disk space
shall be removed regardless of it's contents so both allocated space
from
.B FALLOC_ALLOCATE
and
.B FALLOC_RESV_SPACE
as well as from
.B write(3)
will be removed.
.B FALLOC_UNRESV_SPACE
shall never remove disk blocks outside the range specified.
.B FALLOC_UNRESV_SPACE
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)
or
.B FALLOC_DEALLOCATE
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)
-
To unsubscribe from this list: send the line unsubscribe linux-fsdevel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/7] manpage for fallocate

2007-07-10 Thread Heikki Orsila
On Wed, Jul 11, 2007 at 01:48:20AM +0530, Amit K. Arora wrote:
 .BI int syscall(int, int fd, int mode, loff_t offset, loff_t len);

Correction: int syscall(int fd, int mode, ...),

 .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.

EINTR?

-- 
Heikki Orsila   Barbie's law:
[EMAIL PROTECTED]   Math is hard, let's go shopping!
http://www.iki.fi/shd
-
To unsubscribe from this list: send the line unsubscribe linux-fsdevel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/7] manpage for fallocate

2007-07-10 Thread Barry Naujok
On Wed, 11 Jul 2007 06:18:20 +1000, Amit K. Arora  
[EMAIL PROTECTED] wrote:



Following is the modified version of the manpage originally submitted by
David Chinner. Please use `nroff -man fallocate.2 | less` to view.


A few more touch-ups attached.

Regards,
Barry.

fallocate.2
Description: Binary data