X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=Fuse.pm;h=0985ae06b2f5e50f20bc5beeccec14b934d3cbc0;hb=fe703a91373cdd5e0cb11c339c4ed0f7cc4177da;hp=20d8844e0406ffdbbef57650cf7807da5b24f65e;hpb=8d3e4fdcf602ad70a22258cc4728c03509d81d3c;p=perl-fuse.git diff --git a/Fuse.pm b/Fuse.pm index 20d8844..0985ae0 100755 --- a/Fuse.pm +++ b/Fuse.pm @@ -28,7 +28,7 @@ our %EXPORT_TAGS = ( our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = (); -our $VERSION = '0.14'; +our $VERSION = '0.15'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() @@ -72,17 +72,10 @@ use constant FUSE_IOCTL_MAX_IOV => 256; sub main { my @names = qw(getattr readlink getdir mknod mkdir unlink rmdir symlink rename link chmod chown truncate utime open read write statfs - flush release fsync setxattr getxattr listxattr removexattr); + flush release fsync setxattr getxattr listxattr removexattr + opendir readdir releasedir fsyncdir init destroy access + create ftruncate fgetattr lock utimens bmap); my $fuse_version = fuse_version(); - if ($fuse_version >= 2.3) { - push(@names, qw/opendir readdir releasedir fsyncdir init destroy/); - } - if ($fuse_version >= 2.5) { - push(@names, qw/access create ftruncate fgetattr/); - } - if ($fuse_version >= 2.6) { - push(@names, qw/lock utimens bmap/); - } if ($fuse_version >= 2.8) { # junk doesn't contain a function pointer, and hopefully # never will; it's a "dead" zone in the struct @@ -468,7 +461,7 @@ No creation, or truncation flags (O_CREAT, O_EXCL, O_TRUNC) will be passed to op The fileinfo hash reference contains flags from the Fuse open call which may be modified by the module. The only fields presently supported are: direct_io (version 2.4 onwards) keep_cache (version 2.4 onwards) - nonseekable (version 2.9 onwards) + nonseekable (version 2.8 onwards) Your open() method needs only check if the operation is permitted for the given flags, and return 0 for success. Optionally a file handle may be returned, which will be passed to subsequent read, write, flush, fsync and release calls. @@ -516,6 +509,7 @@ is closed. It may be called multiple times before a file is closed. =head3 release Arguments: Pathname, numeric flags passed to open, file handle + Returns an errno or 0 on success. Called to indicate that there are no more references to the file. Called once @@ -574,6 +568,8 @@ Arguments: Pathname, extended attribute's name Returns an errno or 0 on success. +Removes the named extended attribute (if present) from a file. + =head3 opendir Arguments: Pathname of a directory @@ -691,17 +687,15 @@ Arguments: Pathname, last accessed time, last modified time Returns errno or 0 on success -Like utime(), but allows time resolution down to the nanosecond. Currently -times are passed as "numeric" (internally I believe these are represented -typically as "long double"), so the sub-second portion is represented as -fractions of a second. - -Note that if this call is implemented, it overrides utime() ALWAYS. - -Also note that if you want times passed as arrays instead of floating point +Like utime(), but allows time resolution down to the nanosecond. By default, +times are passed as "numeric" (internally these are typically represented +as "double"), so the sub-second portion is represented as fractions of a +second. If you want times passed as arrays instead of floating point values, for higher precision, you should pass the C option to C. +Note that if this call is implemented, it overrides utime() ALWAYS. + =head3 bmap Arguments: Pathname, numeric blocksize, numeric block number @@ -715,7 +709,7 @@ option passed. =head3 ioctl -Arguments: Pathname, (signed) ioctl command code, flags, data if ioctl op is a write, (optional) file handle +Arguments: Pathname, ioctl command code, flags, data if ioctl op is a write, (optional) file handle Returns errno or 0 on success, and data if ioctl op is a read