Permalink
Commits on Feb 25, 2011
  1. cleanup example

    dpavlin committed Feb 25, 2011
  2. document readdir

    dpavlin committed Feb 25, 2011
  3. close RT #55953 - readdir

    dpavlin committed Feb 25, 2011
  4. Merge branch 'frett-readdir'

    dpavlin committed Feb 25, 2011
  5. Merge branch 'rt-55953-readdir' into master

    frett committed Feb 25, 2011
    Conflicts:
    	AUTHORS
    	Fuse.xs
Commits on Feb 24, 2011
  1. RT#55953 added readdir implementation

    cyga authored and dpavlin committed Feb 24, 2011
Commits on Feb 16, 2011
  1. reduce code duplication in the CLONE method and make sure to dup the …

    frett committed Feb 16, 2011
    …handles object when CLONEing
Commits on Feb 15, 2011
  1. fixed thread cloning in <= perl5.10.0

    frett committed Feb 15, 2011
    the pointer table used in cloning was destroyed before calling CLONE methods in <= perl5.10.0
  2. not having a supported threads model shouldn't be fatal, fallback to …

    frett committed Feb 15, 2011
    …non-threaded mode instead
Commits on Feb 14, 2011
  1. updated Fuse binding to utilize thread-safe static data

    frett committed Feb 14, 2011
    This fixes RT #34284
Commits on Jan 17, 2011
  1. document changes in 0.10_1

    dpavlin committed Jan 17, 2011
  2. bump version to 0.10_1

    dpavlin committed Jan 17, 2011
Commits on Dec 9, 2010
  1. 64-bit support, 2.6 binding

    demonfoo authored and dpavlin committed Dec 9, 2010
    I am (somewhat indirectly, now) using the Fuse package, which you maintain,
    as the basis for a set of Perl modules I've written to mount AFP filesystems
    via Fuse. I actually have made a few changes to the copy I run, to address
    the following issues:
    
    - On NetBSD, the Fuse package won't build out of the box against NetBSD's
    ReFUSE implementation; I have a few changes that make it work (all except
    extended attributes, which apparently PUFFS/ReFUSE doesn't yet handle).
    - On FreeBSD and NetBSD, the version 2.6 binding profile works better, so
    I've altered the code slightly to use it; it works on Linux and OS X as
    well.
    - On most 32-bit Linux distributions (and NetBSD/FreeBSD), Perl is not built
    with 64-bit integer support, thus breaking access to large files (> 2 ** 31
    - 1 bytes long). I've added a sort-of-hackish workaround for Perl builds
    without $Config{'use64bitint'} to get large files handled sanely.
    - Added a few extra option names that aren't included in the @validOpts list
    by default.
    
    If you're interested in my code, check out
    http://svn.now.ai/listing.php?repname=afp-perl to see the repository, or
    http://svn.now.ai/svn/afp-perl/ for SVN checkout access.
    
    --
    Derrik Pates
    demon@now.ai
Commits on Aug 23, 2010
  1. fix permissions

    dpavlin committed Aug 23, 2010
Commits on May 21, 2010
  1. there are plenty, some os specific, valid opts, so just don't bother …

    crucially authored and dpavlin committed May 19, 2010
    …checking for them
Commits on May 16, 2010
  1. Addition of file handles on open files

    gerph authored and dpavlin committed May 16, 2010
    Sat May 15 16:36:47 2010: Request 57517 was acted upon.
    Transaction: Ticket created by gerph
           Queue: Fuse
         Subject: Addition of file handles on open files
       Broken in: 0.09_3
        Severity: (no value)
           Owner: Nobody
      Requestors: gerph@gerph.org
          Status: new
     Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=57517 >
    
    Hiya,
    
    Whilst trying to write a filesystem using the Fuse module, I found it
    surprising that there were no 'file handles' available when you opened
    a file. The only way you can know what file was referenced is by its
    name, which is not useful if your filesystem is intended to return
    different results for each file opened. It turned out in my case to not
    matter, but consider a FS which returned a different story every time
    you opened it. Or, more practically, a FS which returned the contents
    of the latest checked in file - and whilst you were operating on the
    file the latest checked in file changed. There are ways around this -
    files becoming invariant whilst it has any open instances of itself or
    similar - but these are not ideal.
    
    The way that Fuse appears to do this is that the filesystem updates a
    property ('fh') in the fuse_file_info structure on open, to contain the
    context for the opened file. I've put together a change which allows
    you to return a second parameter from open containing this value, which
    is then passed to all the functions which operate on open files (read,
    write, flush, release). Because we're retaining a reference to the SV
    that was returned (and is otherwise unused in the perl) we also
    increment the refcount on open, and decrement it on release - I think
    that's all that's necessary to prevent a leak, but I've never done any
    XS work before this so I can't be certain.
    
    I'd expect that under normal circumstances you'd open a file, set up a
    hashref containing properties for the file that you've opened and use
    'return (0, $handle);' to return it. If you don't return a handle, the
    old behaviour remains - undef will be passed to the implementation in
    place of the handle (which the implementation wasn't expecting so won't
    care about).
    
    In addition, I've also added the ability to set the 'direct_io',
    'keepcache' and 'nonseekable' properties by changing a hashref which is
    passed to the 'open' call.
    
    The archive I've attached contains the Fuse.pm and Fuse.xs files in
    their entirity, together with the diffs from 0.09_3. There is also a
    rudimentary example FS, based on the example one in the Fuse
    distribution, which shows the file handle to be working. It seems to be
    working in my more complex MythTV filesystem that I'm still trying to
    make useful.
    
    I couldn't actually test the nonseekable property as the fuse I have
    seems to be 2.4, so I don't have that property available to me here -
    I've just followed what the documentation says should be available.
    
    I've not added anything to the tests, because I'm not sure how to do
    that really, but I hope that the change to add the file handles is
    useful.
Commits on May 11, 2010
  1. remove version number

    dpavlin committed May 11, 2010
Commits on May 10, 2010
  1. documentation fix

    kost authored and dpavlin committed May 10, 2010
Commits on Mar 19, 2008
  1. another try to fix files larger than 2Gb: for this we pop

    dpavlin committed Mar 19, 2008
    float from stack since long is limited to 4Gb
    
    git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@123 6e4b0b00-1209-0410-87b2-b275959b5705
Commits on Mar 16, 2008
  1. cpan target to push latest verison out

    dpavlin committed Mar 16, 2008
    git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@122 6e4b0b00-1209-0410-87b2-b275959b5705
  2. update latest Changes

    dpavlin committed Mar 16, 2008
    git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@121 6e4b0b00-1209-0410-87b2-b275959b5705
  3. version bump [0.09_2]

    dpavlin committed Mar 16, 2008
    git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@120 6e4b0b00-1209-0410-87b2-b275959b5705
  4. expose and fix 2Gb file bug, RT #32639, RT #33903

    dpavlin committed Mar 16, 2008
    git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@119 6e4b0b00-1209-0410-87b2-b275959b5705