ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/AIO.pm
(Generate patch)

Comparing IO-AIO/AIO.pm (file contents):
Revision 1.231 by root, Fri Jul 27 19:03:18 2012 UTC vs.
Revision 1.233 by root, Mon Aug 13 01:01:04 2012 UTC

362 362
363 363
364=item aio_open $pathname, $flags, $mode, $callback->($fh) 364=item aio_open $pathname, $flags, $mode, $callback->($fh)
365 365
366Asynchronously open or create a file and call the callback with a newly 366Asynchronously open or create a file and call the callback with a newly
367created filehandle for the file. 367created filehandle for the file (or C<undef> in case of an error).
368 368
369The pathname passed to C<aio_open> must be absolute. See API NOTES, above, 369The pathname passed to C<aio_open> must be absolute. See API NOTES, above,
370for an explanation. 370for an explanation.
371 371
372The C<$flags> argument is a bitmask. See the C<Fcntl> module for a 372The C<$flags> argument is a bitmask. See the C<Fcntl> module for a
1292C<IO::AIO::FIEMAP_FLAG_XATTR> - C<IO::AIO::FIEMAP_FLAGS_COMPAT> is also 1292C<IO::AIO::FIEMAP_FLAG_XATTR> - C<IO::AIO::FIEMAP_FLAGS_COMPAT> is also
1293exported), and is normally C<0> or C<IO::AIO::FIEMAP_FLAG_SYNC> to query 1293exported), and is normally C<0> or C<IO::AIO::FIEMAP_FLAG_SYNC> to query
1294the data portion. 1294the data portion.
1295 1295
1296C<$count> is the maximum number of extent records to return. If it is 1296C<$count> is the maximum number of extent records to return. If it is
1297C<undef>, then IO::AIO queries all extents of the file. As a very special 1297C<undef>, then IO::AIO queries all extents of the range. As a very special
1298case, if it is C<0>, then the callback receives the number of extents 1298case, if it is C<0>, then the callback receives the number of extents
1299instead of the extents themselves. 1299instead of the extents themselves (which is unreliable, see below).
1300 1300
1301If an error occurs, the callback receives no arguments. The special 1301If an error occurs, the callback receives no arguments. The special
1302C<errno> value C<IO::AIO::EBADR> is available to test for flag errors. 1302C<errno> value C<IO::AIO::EBADR> is available to test for flag errors.
1303 1303
1304Otherwise, the callback receives an array reference with extent 1304Otherwise, the callback receives an array reference with extent
1314C<IO::AIO::FIEMAP_EXTENT_DELALLOC>, C<IO::AIO::FIEMAP_EXTENT_ENCODED>, 1314C<IO::AIO::FIEMAP_EXTENT_DELALLOC>, C<IO::AIO::FIEMAP_EXTENT_ENCODED>,
1315C<IO::AIO::FIEMAP_EXTENT_DATA_ENCRYPTED>, C<IO::AIO::FIEMAP_EXTENT_NOT_ALIGNED>, 1315C<IO::AIO::FIEMAP_EXTENT_DATA_ENCRYPTED>, C<IO::AIO::FIEMAP_EXTENT_NOT_ALIGNED>,
1316C<IO::AIO::FIEMAP_EXTENT_DATA_INLINE>, C<IO::AIO::FIEMAP_EXTENT_DATA_TAIL>, 1316C<IO::AIO::FIEMAP_EXTENT_DATA_INLINE>, C<IO::AIO::FIEMAP_EXTENT_DATA_TAIL>,
1317C<IO::AIO::FIEMAP_EXTENT_UNWRITTEN>, C<IO::AIO::FIEMAP_EXTENT_MERGED> or 1317C<IO::AIO::FIEMAP_EXTENT_UNWRITTEN>, C<IO::AIO::FIEMAP_EXTENT_MERGED> or
1318C<IO::AIO::FIEMAP_EXTENT_SHARED>. 1318C<IO::AIO::FIEMAP_EXTENT_SHARED>.
1319
1320At the time of this writing (Linux 3.2), this requets is unreliable unless
1321C<$count> is C<undef>, as the kernel has all sorts of bugs preventing
1322it to return all extents of a range for files with large number of
1323extents. The code works around all these issues if C<$count> is undef.
1319 1324
1320=item aio_group $callback->(...) 1325=item aio_group $callback->(...)
1321 1326
1322This is a very special aio request: Instead of doing something, it is a 1327This is a very special aio request: Instead of doing something, it is a
1323container for other aio requests, which is useful if you want to bundle 1328container for other aio requests, which is useful if you want to bundle

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines