OSDN Git Service

(split) LDP: Update draft and release for LDP 3.65
[linuxjm/LDP_man-pages.git] / draft / man2 / fallocate.2
index 6332f7b..f23327d 100644 (file)
@@ -22,7 +22,7 @@
 .\" Updated 2013-05-07, Akihiro MOTOKI <amotoki@gmail.com>
 .\" Updated 2013-07-22, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.TH FALLOCATE 2 2014\-01\-24 Linux "Linux Programmer's Manual"
+.TH FALLOCATE 2 2014\-04\-17 Linux "Linux Programmer's Manual"
 .SH 名前
 fallocate \- ファイル空間の操作
 .SH 書式
@@ -42,14 +42,12 @@ POSIX.1 で規定された方法である \fBposix_fallocate\fP(3)  を使うこ
 \fImode\fP 引き数は、指定された領域に対して実行する操作を指定する。
 サポートされている操作の詳細は以下のサブセクションで説明する。
 .SS ディスク領域の割り当て
-The default operation (i.e., \fImode\fP is zero) of \fBfallocate\fP()  allocates
-the disk space within the range specified by \fIoffset\fP and \fIlen\fP.  The file
-size (as reported by \fBstat\fP(2))  will be changed if \fIoffset\fP+\fIlen\fP is
-greater than the file size.  Any subregion within the range specified by
-\fIoffset\fP and \fIlen\fP that did not contain data before the call will be
-initialized to zero.  This default behavior closely resembles the behavior
-of the \fBposix_fallocate\fP(3)  library function, and is intended as a method
-of optimally implementing that function.
+\fBfallocate\fP() のデフォルトの動作 (つまり \fImode\fP が 0 の場合) は、 \fIoffset\fP と \fIlen\fP
+で指定された範囲のディスク領域の割り当てを行う。 \fIoffset\fP+\fIlen\fP がファイルサイズよりも大きかった場合、 (\fBstat\fP(2)
+で報告される) ファイルサイズが変更される。 \fIoffset\fP と \fIlen\fP で指定される範囲のサブ領域で、
+呼び出し前にデータを保持していなかった場合、そのサブ領域は 0 で初期化される。 このデフォルトの動作は、 ライブラリ関数
+\fBposix_fallocate\fP(3) の動作と非常に似ている。 これは、 このシステムコールが \fBposix_fallocate\fP(3)
+を最適に実装する手段を提供することを目的としているからである。
 
 呼び出しが成功した場合、
 \fIoffset\fP と \fIlen\fP で指定された範囲へのそれ以降の書き込みでは、
@@ -73,9 +71,8 @@ of optimally implementing that function.
 に指定しなければならない。 つまり、 ファイル末尾の punch off を行った場合でも、 (\fBstat\fP(2) で報告される)
 ファイルサイズが変化しない。
 
-Not all filesystems support \fBFALLOC_FL_PUNCH_HOLE\fP; if a filesystem doesn't
-support the operation, an error is returned.  The operation is supported on
-at least the following filesystems
+すべてのファイルシステムで \fBFALLOC_FL_PUNCH_HOLE\fP がサポートされているわけではない。
+ファイルシステムがこの操作をサポートしていない場合は、 エラーが返る。 この操作は少なくとも以下のファイルシステムでサポートされている。
 .IP * 3
 XFS (Linux 2.6.38 以降)
 .IP *
@@ -86,6 +83,33 @@ Btrfs (Linux 3.7 以降)
 .IP *
 .\" commit 83e4fa9c16e4af7122e31be3eca5d57881d236fe
 tmpfs (Linux 3.5 以降)
+.SS "Collapsing file space"
+.\" commit 00f5e61998dd17f5375d9dfc01331f104b83f841
+Specifying the \fBFALLOC_FL_COLLAPSE_RANGE\fP flag (available since Linux 3.15)
+in \fImode\fP removes a byte range from a file, without leaving a hole.  The
+byte range to be collapsed starts at \fIoffset\fP and continues for \fIlen\fP
+bytes.  At the completion of the operation, the contents of the file
+starting at the location \fIoffset+len\fP will be appended at the location
+\fIoffset\fP, and the file will be \fIlen\fP bytes smaller.
+
+A filesystem may place limitations on the granularity of the operation, in
+order to ensure efficient implementation.  Typically, \fIoffset\fP and \fIlen\fP
+must be a multiple of the filesystem logical block size, which varies
+according to the filesystem type and configuration.  If a filesystem has
+such a requirement, \fBfallocate\fP()  will fail with the error \fBEINVAL\fP if
+this requirement is violated.
+
+If the region specified by \fIoffset\fP plus \fIlen\fP reaches or passes the end
+of file, an error is returned; instead, use \fBftruncate\fP(2)  to truncate a
+file.
+
+No other flags may be specified in \fImode\fP in conjunction with
+\fBFALLOC_FL_COLLAPSE_RANGE\fP.
+
+.\" commit 9eb79482a97152930b113b51dff530aba9e28c8e
+.\" commit e1d8fb88a64c1f8094b9f6c3b6d2d9e6719c970d
+As at Linux 3.15, \fBFALLOC_FL_COLLAPSE_RANGE\fP is supported by ext4 (only for
+extent\-based files)  and XFS.
 .SH 返り値
 成功の場合、 \fBfallocate\fP() は 0 を返す。 エラーの場合、\-1 を返し、 \fIerror\fP にエラーを示す値を設定する。
 .SH エラー
@@ -108,6 +132,29 @@ tmpfs (Linux 3.5 以降)
 .\" http://thread.gmane.org/gmane.linux.file-systems/48331/focus=1193526
 \fIoffset\fP が 0 未満だったか、 \fIlen\fP が 0 以下だった。
 .TP 
+\fBEINVAL\fP
+\fImode\fP is \fBFALLOC_FL_COLLAPSE_RANGE\fP and the range specified by \fIoffset\fP
+plus \fIlen\fP reaches or passes the end of the file.
+.TP 
+\fBEINVAL\fP
+\fImode\fP is \fBFALLOC_FL_COLLAPSE_RANGE\fP, but either \fIoffset\fP or \fIlen\fP is
+not a multiple of the filesystem block size.
+.TP 
+\fBEINVAL\fP
+mode contains both \fBFALLOC_FL_COLLAPSE_RANGE\fP and other flags; no other
+flags are permitted with \fBFALLOC_FL_COLLAPSE_RANGE\fP.
+.TP  EINVAL
+\fImode\fP
+.\" There was a inconsistency in 3.15-rc1, that should be resolved so that all
+.\" filesystems use this error for this case. (Tytso says ex4 will change.)
+.\" http://thread.gmane.org/gmane.comp.file-systems.xfs.general/60485/focus=5521
+.\" From: Michael Kerrisk (man-pages <mtk.manpages@...>
+.\" Subject: Re: [PATCH v5 10/10] manpage: update FALLOC_FL_COLLAPSE_RANGE flag in fallocate
+.\" Newsgroups: gmane.linux.man, gmane.linux.file-systems
+.\" Date: 2014-04-17 13:40:05 GMT
+is \fBFALLOC_FL_COLLAPSE_RANGE\fP, but the file referred to by \fIfd\fP is not a
+regular file.
+.TP 
 \fBEIO\fP
 ファイルシステムとの読み書き中に入出力エラーが発生した。
 .TP 
@@ -127,11 +174,15 @@ tmpfs (Linux 3.5 以降)
 .TP 
 \fBEPERM\fP
 \fIfd\fP が参照するファイルに変更不可 (immutable) の属性が付いている (\fBchattr\fP(1) 参照)。 \fImode\fP に
-\fBFALLOC_FL_PUNCH_HOLE\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\81\8cã\80\81 \fIfd\fP ã\81\8cå\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81«è¿½å\8a ã\81®ã\81¿ (append\-only)
-の属性が付いている (\fBchattr\fP(1) 参照)。
+\fBFALLOC_FL_PUNCH_HOLE\fP ã\81\8b \fBFALLOC_FL_COLLAPSE_RANGE\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\81\8cã\80\81 \fIfd\fP
\81\8cå\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81«è¿½å\8a ã\81®ã\81¿ (append\-only) ã\81®å±\9eæ\80§ã\81\8cä»\98ã\81\84ã\81¦ã\81\84ã\82\8b (\fBchattr\fP(1) å\8f\82ç\85§)ã\80\82
 .TP 
 \fBESPIPE\fP
 \fIfd\fP がパイプか FIFO を参照している。
+.TP 
+\fBETXTBSY\fP
+\fImode\fP specifies \fBFALLOC_FL_COLLAPSE_RANGE\fP, but the file referred to by
+\fIfd\fP is currently being executed.
 .SH バージョン
 .\" See http://sourceware.org/bugzilla/show_bug.cgi?id=14964
 \fBfallocate\fP()  はカーネル 2.6.23 以降の Linux で利用可能である。 glibc での対応はバージョン 3.10
@@ -141,6 +192,6 @@ tmpfs (Linux 3.5 以降)
 .SH 関連項目
 \fBfallocate\fP(1), \fBftruncate\fP(2), \fBposix_fadvise\fP(3), \fBposix_fallocate\fP(3)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.63 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。