Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 03 May 2015 07:35:21 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 199874] sysutils/fusefs-exfat: add support for CREATE operations
Message-ID:  <bug-199874-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199874

            Bug ID: 199874
           Summary: sysutils/fusefs-exfat: add support for CREATE
                    operations
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: freebsd-ports-bugs@FreeBSD.org
          Reporter: danny@dannywarren.com
                CC: samm@os2.kiev.ua
                CC: samm@os2.kiev.ua
             Flags: maintainer-feedback?(samm@os2.kiev.ua)

Created attachment 156261
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=156261&action=edit
patch-fuse-main.c

It looks like fusefs-exfat does not support fuse's CREATE file operator. 
Because of this, creating new files does not work on exfat mounted filesystems.

Most other file operations work just fine, such as creating directories or
writing to existing files.  Just not anything that (I am assuming) calls
creat(2) or O_CREAT under the hood.  Which seems like most everything.

The attached patch adds CREATE support to fusefs-exfat, which makes new file
operations work again in FreeBSD.  


Here are examples of create file operations failing (including snippets from
fusefs debug to show what is breaking):

  $ touch testfile
  touch: testfile: Function not implemented

    unique: 4, opcode: CREATE (35), nodeid: 1, insize: 53, pid: 5678
       unique: 4, error: -78 (Function not implemented), outsize: 16

  $ echo "test" > testfile
  mksh: can't create testfile: Invalid argument

    unique: 26, opcode: CREATE (35), nodeid: 1, insize: 57, pid: 10351
       unique: 26, error: -78 (Function not implemented), outsize: 16


Here are the same file operations working after the patch:

  $ touch testfile

    unique: 66, opcode: CREATE (35), nodeid: 1, insize: 57, pid: 10880
    create flags: 0x202 /testfile 0100644 umask=0000
       create[34385160192] flags: 0x202 /testfile
    getattr /testfile
       NODEID: 3
       unique: 66, success, outsize: 152
    unique: 67, opcode: GETATTR (3), nodeid: 3, insize: 40, pid: 10880
    getattr /testfile
       unique: 67, success, outsize: 112
    unique: 68, opcode: OPEN (14), nodeid: 3, insize: 48, pid: 10880
    open flags: 0x1 /testfile
       open[34385160192] flags: 0x1 /testfile
       unique: 68, success, outsize: 32

  $ echo "test" > testfile

    unique: 134, opcode: CREATE (35), nodeid: 1, insize: 57, pid: 1687
    create flags: 0x202 /testfile 0100644 umask=0000
       create[34385160192] flags: 0x202 /testfile
    getattr /testfile
       NODEID: 5
       unique: 134, success, outsize: 152
    unique: 135, opcode: GETATTR (3), nodeid: 5, insize: 40, pid: 1687
    getattr /testfile
       unique: 135, success, outsize: 112
    unique: 136, opcode: OPEN (14), nodeid: 5, insize: 48, pid: 1687
    open flags: 0x1 /testfile
       open[34385160192] flags: 0x1 /testfile
       unique: 136, success, outsize: 32
    unique: 137, opcode: GETATTR (3), nodeid: 5, insize: 40, pid: 1687
    getattr /testfile
       unique: 137, success, outsize: 112
    unique: 138, opcode: WRITE (16), nodeid: 5, insize: 69, pid: 1687
    write[34385160192] 5 bytes to 0 flags: 0x0
       write[34385160192] 5 bytes to 0
       unique: 138, success, outsize: 24


Additional information can be see about the fusefs CREATE operator here:

http://fuse.sourceforge.net/doxygen/structfuse__operations.html#a97243e0f9268a96236bc3b6f2bacee17

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-199874-13>