.IP *
.\" commit 83e4fa9c16e4af7122e31be3eca5d57881d236fe
tmpfs (Linux 3.5 以降)
-.SS "Collapsing file space"
+.SS ファイル空間の一部削除
.\" 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.
+\fBFALLOC_FL_COLLAPSE_RANGE\fP フラグ (Linux 3.15 以降で利用可能) を \fImode\fP に指定すると、
+指定したバイト範囲をファイルから削除する。 その際、ホールを残らない。 削除されるバイト範囲は \fIoffset\fP から始まる \fIlen\fP
+バイトの範囲である。 操作が完了すると、 ファイルの \fIoffset+len\fP の位置から始まる内容が \fIoffset\fP の位置に見えるようになり、
+ファイルのサイズは \fIlen\fP バイトだけ小さくなる。
-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.
+効率的に動作する実装にするため、ファイルシステムはこの操作の粒度に制限を設けることがある。 通常は \fIoffset\fP と \fIlen\fP
+はファイルシステムの論理ブロックサイズの倍数でなければならない。 論理ブロックサイズはファイルシステムの種類や設定により様々である。
+ファイルシステムにこのような要求条件がある場合、 その要求条件が満たされていなければ、 \fBfallocate\fP はエラー \fBEINVAL\fP
+で失敗する。
-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.
+\fIoffset\fP と \fIlen\fP で指定された範囲がファイルの末尾かそれより先まで達している場合、 エラーが返される。
+代わりに、ファイルの切り詰めを行う \fBftruncate\fP(2) を使用すること。
-No other flags may be specified in \fImode\fP in conjunction with
-\fBFALLOC_FL_COLLAPSE_RANGE\fP.
+\fBFALLOC_FL_COLLAPSE_RANGE\fP と他のフラグを同時に \fImode\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.
+Linux 3.15 時点では \fBFALLOC_FL_COLLAPSE_RANGE\fP は ext4 (エクステントベースのファイル) と XFS
+でサポートされている。
.SH 返り値
成功の場合、 \fBfallocate\fP() は 0 を返す。 エラーの場合、\-1 を返し、 \fIerror\fP にエラーを示す値を設定する。
.SH エラー
\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.
+\fImode\fP が \fBFALLOC_FL_COLLAPSE_RANGE\fP で、 \fIoffset\fP と \fIlen\fP
+で指定された範囲がファイルの末尾かそれより先まで達している。
.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.
+\fImode\fP が \fBFALLOC_FL_COLLAPSE_RANGE\fP だが、 \fIoffset\fP か \fIlen\fP
+のいずれかがファイルシステムのブロックサイズの倍数ではない。
.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.
+\fImode\fP に \fBFALLOC_FL_COLLAPSE_RANGE\fP と他のフラグの両方が指定されている。
+\fBFALLOC_FL_COLLAPSE_RANGE\fP と他のフラグを一緒に使うことができない。
.TP EINVAL
\fImode\fP
.\" There was a inconsistency in 3.15-rc1, that should be resolved so that all
.\" 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.
+が \fBFALLOC_FL_COLLAPSE_RANGE\fP だが、 \fIfd\fP が参照しているファイルが通常のファイルではない。
.TP
\fBEIO\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.
+\fImode\fP に \fBFALLOC_FL_COLLAPSE_RANGE\fP が指定されたが、 \fIfd\fP が参照するファイルは現在実行中である。
.SH バージョン
.\" See http://sourceware.org/bugzilla/show_bug.cgi?id=14964
\fBfallocate\fP() はカーネル 2.6.23 以降の Linux で利用可能である。 glibc での対応はバージョン 3.10