Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752546AbbEHJk0 (ORCPT ); Fri, 8 May 2015 05:40:26 -0400 Received: from mail-wi0-f174.google.com ([209.85.212.174]:38628 "EHLO mail-wi0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751113AbbEHJkV (ORCPT ); Fri, 8 May 2015 05:40:21 -0400 Message-ID: <554C847A.9050709@gmail.com> Date: Fri, 08 May 2015 11:40:10 +0200 From: "Michael Kerrisk (man-pages)" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Namjae Jeon CC: mtk.manpages@gmail.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-man@vger.kernel.org, Linux API , Dave Chinner , "Theodore Ts'o" Subject: Re: [PATCH v3] manpage: update FALLOC_FL_INSERT_RANGE flag in fallocate References: <009201d0894f$d87f0890$897d19b0$@samsung.com> In-Reply-To: <009201d0894f$d87f0890$897d19b0$@samsung.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4458 Lines: 175 Hi Namjae, > Update FALLOC_FL_INSERT_RANGE flag in fallocate. Sorry -- I should have said that I already applied your V2 patch and made the fix we discussed (and that you add below). I just hadn't pushed to Git yet. Done now. Cheers, Michael On 05/08/2015 07:28 AM, Namjae Jeon wrote: > Signed-off-by: Namjae Jeon > Signed-off-by: Ashish Sangwan > --- > man2/fallocate.2 | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 84 insertions(+), 5 deletions(-) > > diff --git a/man2/fallocate.2 b/man2/fallocate.2 > index 0cc1a00..0d31027 100644 > --- a/man2/fallocate.2 > +++ b/man2/fallocate.2 > @@ -228,6 +228,59 @@ ext4, for extent-based files (since Linux 3.15) > .IP * > SMB3 (since Linux 3.17) > .\" commit 30175628bf7f521e9ee31ac98fa6d6fe7441a556 > +.SS Increasing file space > +flag (available since Linux 4.1) > +.\" commit dd46c787788d5bf5b974729d43e4c405814a4c7d > +Specifying the > +.BR FALLOC_FL_INSERT_RANGE > +flag in > +.I mode > +will increase the file space by inserting a hole within the file size without > +overwriting any existing data. > +The hole will start at > +.I offset > +and continue for > +.I len > +bytes. > +For inserting hole inside file, the contents of the file starting at > +.I offset > +will be shifted towards right by > +.I len > +bytes. > +Inserting a hole inside the file will increase the file size by > +.I len > +bytes. > + > +This mode has the same limitation as > +.BR FALLOC_FL_COLLAPSE_RANGE > +regarding the > +granularity of the operation. > +If the granularity requirements are not met, > +.BR fallocate () > +will fail with the error > +.BR EINVAL. > +If the > +.I offset > +is greater than or equal to the end of file, an error is > +returned. > +For such type of operations, i.e. inserting a hole at the end of file, > +.BR ftruncate(2) > +should be used. > +In case > +.IR offset + len > +exceeds the maximum file size, errno will be set to > +.B EFBIG. > + > +No other flags may be specified in > +.IR mode > +in conjunction with > +.BR FALLOC_FL_INSERT_RANGE . > + > +As of Linux 4.1, > +.B FALLOC_FL_INSERT_RANGE > +is supported by > +XFS. > +.\" commit a904b1ca5751faf5ece8600e18cd3b674afcca1b > .SH RETURN VALUE > On success, > .BR fallocate () > @@ -245,6 +298,12 @@ is not a valid file descriptor, or is not opened for writing. > .IR offset + len > exceeds the maximum file size. > .TP > +.B EFBIG > +.I mode > +is > +.BR FALLOC_FL_INSERT_RANGE , > +the current file size+len exceeds the maximum file size. > +.TP > .B EINTR > A signal was caught during execution. > .TP > @@ -273,7 +332,17 @@ reaches or passes the end of the file. > .B EINVAL > .I mode > is > -.BR FALLOC_FL_COLLAPSE_RANGE , > +.BR FALLOC_FL_INSERT_RANGE > +and the range specified by > +.I offset > +reaches or passes the end of the file. > +.TP > +.B EINVAL > +.I mode > +is > +.BR FALLOC_FL_COLLAPSE_RANGE > +or > +.BR FALLOC_FL_INSERT_RANGE , > but either > .I offset > or > @@ -282,18 +351,24 @@ is not a multiple of the filesystem block size. > .TP > .B EINVAL > .I mode > -contains both > +contains either of > .B FALLOC_FL_COLLAPSE_RANGE > +or > +.B FALLOC_FL_INSERT_RANGE > and other flags; > no other flags are permitted with > -.BR FALLOC_FL_COLLAPSE_RANGE . > +.BR FALLOC_FL_COLLAPSE_RANGE > +or > +.BR FALLOC_FL_INSERT_RANGE . > .TP > .B EINVAL > .I mode > is > .BR FALLOC_FL_COLLAPSE_RANGE > or > -.BR FALLOC_FL_ZERO_RANGE , > +.BR FALLOC_FL_ZERO_RANGE > +or > +.BR FALLOC_FL_INSERT_RANGE , > but the file referred to by > .I fd > is not a regular file. > @@ -345,6 +420,8 @@ specifies > .BR FALLOC_FL_PUNCH_HOLE > or > .BR FALLOC_FL_COLLAPSE_RANGE > +or > +.BR FALLOC_FL_INSERT_RANGE > and > the file referred to by > .I fd > @@ -363,7 +440,9 @@ refers to a pipe or FIFO. > .B ETXTBSY > .I mode > specifies > -.BR FALLOC_FL_COLLAPSE_RANGE , > +.BR FALLOC_FL_COLLAPSE_RANGE > +or > +.BR FALLOC_FL_INSERT_RANGE , > but the file referred to by > .IR fd > is currently being executed. > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/