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>