X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman2%2Ffallocate.2;h=0af3036f394b4ad63b9404145a2c9ddcb166a0dc;hb=dba08e2eee1afb613e4e8e9310eb752cb06f45de;hp=f23327d8df5138212aa650590374603bcebe32df;hpb=97878f8d20b18a86ed2767b0b674e7bbca767df2;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man2/fallocate.2 b/release/man2/fallocate.2 index f23327d8..0af3036f 100644 --- a/release/man2/fallocate.2 +++ b/release/man2/fallocate.2 @@ -22,7 +22,7 @@ .\" Updated 2013-05-07, Akihiro MOTOKI .\" Updated 2013-07-22, Akihiro MOTOKI .\" -.TH FALLOCATE 2 2014\-04\-17 Linux "Linux Programmer's Manual" +.TH FALLOCATE 2 2014\-05\-08 Linux "Linux Programmer's Manual" .SH 名前 fallocate \- ファイル空間の操作 .SH 書式 @@ -83,33 +83,55 @@ Btrfs (Linux 3.7 以降) .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 +でサポートされている。 +.SS "Zeroing file space" +.\" commit 409332b65d3ed8cfa7a8030f1e9d52f372219642 +Specifying the \fBFALLOC_FL_ZERO_RANGE\fP flag (available since Linux 3.14) in +\fImode\fP zeroes space in the byte range starting at \fIoffset\fP and continuing +for \fIlen\fP bytes. Within the specified range, blocks are preallocated for +the regions that span the holes in the file. After a successful call, +subsequent reads from this range will return zeroes. + +Zeroing is done within the filesystem preferably by converting the range +into unwritten extents. This approach means that the specified range will +not be physically zeroed out on the device (except for partial blocks at the +either end of the range), and I/O is (otherwise) required only to update +metadata. + +If the \fBFALLOC_FL_KEEP_SIZE\fP flag is additionally specified in \fImode\fP, the +behavior of the call is similar, but the file size will not be changed even +if \fIoffset\fP+\fIlen\fP is greater than the file size. This behaviour is the +same as when preallocating space with \fBFALLOC_FL_KEEP_SIZE\fP specified. + +Not all filesystems support \fBFALLOC_FL_ZERO_RANGE\fP; if a filesystem doesn't +support the operation, an error is returned. The operation is supported on +at least the following filesystems: +.IP * 3 +.\" commit 376ba313147b4172f3e8cf620b9fb591f3e8cdfa +XFS (since Linux 3.14) +.IP * +.\" commit b8a8684502a0fc852afa0056c6bb2a9273f6fcc0 +ext4, for extent\-based files (since Linux 3.14) .SH 返り値 成功の場合、 \fBfallocate\fP() は 0 を返す。 エラーの場合、\-1 を返し、 \fIerror\fP にエラーを示す値を設定する。 .SH エラー @@ -133,18 +155,18 @@ extent\-based files) and XFS. \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 が \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 と他のフラグの両方が指定されている。 +\fBFALLOC_FL_COLLAPSE_RANGE\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. -.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 @@ -152,8 +174,8 @@ flags are permitted with \fBFALLOC_FL_COLLAPSE_RANGE\fP. .\" 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. +\fImode\fP is \fBFALLOC_FL_COLLAPSE_RANGE\fP or \fBFALLOC_FL_ZERO_RANGE\fP, but the +file referred to by \fIfd\fP is not a regular file. .TP \fBEIO\fP ファイルシステムとの読み書き中に入出力エラーが発生した。 @@ -181,8 +203,7 @@ regular file. \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 @@ -192,6 +213,6 @@ regular file. .SH 関連項目 \fBfallocate\fP(1), \fBftruncate\fP(2), \fBposix_fadvise\fP(3), \fBposix_fallocate\fP(3) .SH この文書について -この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部 +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。