[Bug 199874] sysutils/fusefs-exfat: add support for CREATE operations
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun May 3 07:35:22 UTC 2015
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 at FreeBSD.org
Reporter: danny at dannywarren.com
CC: samm at os2.kiev.ua
CC: samm at os2.kiev.ua
Flags: maintainer-feedback?(samm at 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.
More information about the freebsd-ports-bugs
mailing list