{"action":"opened","issue":{"url":"https://api.github.com/repos/osxfuse/osxfuse/issues/227","labels_url":"https://api.github.com/repos/osxfuse/osxfuse/issues/227/labels{/name}","comments_url":"https://api.github.com/repos/osxfuse/osxfuse/issues/227/comments","events_url":"https://api.github.com/repos/osxfuse/osxfuse/issues/227/events","html_url":"https://github.com/osxfuse/osxfuse/issues/227","id":100776991,"number":227,"title":"Can't delete via Finder in 10.11 El Capitan","user":{"login":"jbcarlo","id":13782099,"avatar_url":"https://avatars.githubusercontent.com/u/13782099?v=3","gravatar_id":"","url":"https://api.github.com/users/jbcarlo","html_url":"https://github.com/jbcarlo","followers_url":"https://api.github.com/users/jbcarlo/followers","following_url":"https://api.github.com/users/jbcarlo/following{/other_user}","gists_url":"https://api.github.com/users/jbcarlo/gists{/gist_id}","starred_url":"https://api.github.com/users/jbcarlo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbcarlo/subscriptions","organizations_url":"https://api.github.com/users/jbcarlo/orgs","repos_url":"https://api.github.com/users/jbcarlo/repos","events_url":"https://api.github.com/users/jbcarlo/events{/privacy}","received_events_url":"https://api.github.com/users/jbcarlo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-13T14:03:45Z","updated_at":"2015-08-13T14:03:45Z","closed_at":null,"body":"## Summary\r\n\r\nIt appears that Finder is looking for something new in OSX 10.11. In several filesystems I have tried (using OSXFUSE 2.8.0), deleting files via Finder produces the following error dialog:\r\n```\r\nThe operation can’t be completed because one or more required items can’t be found.\r\n(Error code -43)\r\n```\r\n\r\n## Details\r\n\r\nIn previous versions of OSX, deleting a file via an \"rm\" command issues an unlink call, and deleting via Finder also issues an unlink call (after receiving requests for Finder metadata, such as DS_Store, ._ files, etc.)\r\n\r\nOn OSX 10.11 (Beta 4), deleting via \"rm\" issues an unlink call, but deleting via Finder does not produce an unlink call. The normal metadata requests are issued, but then the error above is shown (error code -43, file not found).\r\n\r\nI'm not sure what's not being found, and why it's required for deletion of the file.\r\n\r\n## Sample\r\n\r\nIn an attempt to isolate the issue, I have added the \"unlink\" operation to the basic sample at https://github.com/osxfuse/filesystems/tree/master/filesystems-c/hello\r\n\r\nThe unlink implementation does nothing; it's present to detect whether unlink commands were issued at all (it prints when called, and had a breakpoint on it while testing). \r\n\r\n```c\r\n#define FUSE_USE_VERSION 27\r\n\r\n#include <errno.h>\r\n#include <fcntl.h>\r\n#include <string.h>\r\n#include <stdio.h>\r\n#include <unistd.h>\r\n#include \"fuse.h\"\r\n\r\nstatic const char  *file_path      = \"/hello.txt\";\r\nstatic const char   file_content[] = \"Hello World!\\n\";\r\nstatic const size_t file_size      = sizeof(file_content)/sizeof(char) - 1;\r\n\r\nstatic int\r\nhello_getattr(const char *path, struct stat *stbuf)\r\n{\r\n    memset(stbuf, 0, sizeof(struct stat));\r\n    \r\n    if (strcmp(path, \"/\") == 0) { /* The root directory of our file system. */\r\n        stbuf->st_mode = S_IFDIR | 0755;\r\n        stbuf->st_nlink = 3;\r\n        stbuf->st_uid = getuid();\r\n        stbuf->st_gid = getgid();\r\n    } else if (strcmp(path, file_path) == 0) { /* The only file we have. */\r\n        stbuf->st_mode = S_IFREG | 0777;\r\n        stbuf->st_nlink = 1;\r\n        stbuf->st_size = file_size;\r\n        stbuf->st_uid = getuid();\r\n        stbuf->st_gid = getgid();\r\n    } else /* We reject everything else. */\r\n        return -ENOENT;\r\n    \r\n    return 0;\r\n}\r\n\r\nstatic int\r\nhello_open(const char *path, struct fuse_file_info *fi)\r\n{\r\n    if (strcmp(path, file_path) != 0) /* We only recognize one file. */\r\n        return -ENOENT;\r\n    \r\n    if ((fi->flags & O_ACCMODE) != O_RDONLY) /* Only reading allowed. */\r\n        return -EACCES;\r\n    \r\n    return 0;\r\n}\r\n\r\nstatic int\r\nhello_readdir(const char *path, void *buf, fuse_fill_dir_t filler,\r\n              off_t offset, struct fuse_file_info *fi)\r\n{\r\n    if (strcmp(path, \"/\") != 0) /* We only recognize the root directory. */\r\n        return -ENOENT;\r\n    \r\n    filler(buf, \".\", NULL, 0);           /* Current directory (.)  */\r\n    filler(buf, \"..\", NULL, 0);          /* Parent directory (..)  */\r\n    filler(buf, file_path + 1, NULL, 0); /* The only file we have. */\r\n    \r\n    return 0;\r\n}\r\n\r\nstatic int\r\nhello_read(const char *path, char *buf, size_t size, off_t offset,\r\n           struct fuse_file_info *fi)\r\n{\r\n    if (strcmp(path, file_path) != 0)\r\n        return -ENOENT;\r\n    \r\n    if (offset >= file_size) /* Trying to read past the end of file. */\r\n        return 0;\r\n    \r\n    if (offset + size > file_size) /* Trim the read to the file size. */\r\n        size = file_size - offset;\r\n    \r\n    memcpy(buf, file_content + offset, size); /* Provide the content. */\r\n    \r\n    return size;\r\n}\r\n\r\nstatic int\r\nhello_unlink(const char* path)\r\n{\r\n    printf(\"Unlink %s\\n\", path);\r\n    return 0;\r\n}\r\n\r\nstatic struct fuse_operations hello_filesystem_operations = {\r\n    .getattr = hello_getattr, /* To provide size, permissions, etc. */\r\n    .open    = hello_open,    /* To enforce read-only access.       */\r\n    .read    = hello_read,    /* To provide file content.           */\r\n    .readdir = hello_readdir, /* To provide directory listing.      */\r\n    .unlink  = hello_unlink\r\n};\r\n\r\nint\r\nmain(int argc, char **argv)\r\n{\r\n    const char* args[] = { \"appPath\", \"/Users/me/fs\", \"-s\", \"-f\", \"-d\" };\r\n    return fuse_main((sizeof args) / (sizeof args[0]), args, &hello_filesystem_operations, NULL);\r\n}\r\n```\r\n\r\nOn OSX 10.10 with OSXFUSE 2.8.0, deleting hello.txt via \"rm\" issues an unlink command, and deleting hello.txt via Finder issues an unlink command (after querying for various Finder metadata).\r\n\r\nOn OSX 10.11 with OSXFUSE 2.8.0, deleting hello.txt via \"rm\" issues an unlink command, but deleting via Finder does not. The following debug log is produced during a deletion attempt (the log begins at process launch, and ends where Finder is displaying the Error -43 dialog).\r\n\r\n```\r\nunique: 0, opcode: INIT (26), nodeid: 0, insize: 56\r\nINIT: 7.8\r\nflags=0x00000000\r\nmax_readahead=0x00100000\r\n   INIT: 7.8\r\n   flags=0x00000000\r\n   max_readahead=0x00100000\r\n   max_write=0x01000000\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 40\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: ACCESS (34), nodeid: 1, insize: 48\r\nACCESS / 00\r\n   unique: 0, error: -78 (Function not implemented), outsize: 16\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: GETATTR (3), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: GETXATTR (22), nodeid: 1, insize: 77\r\n   unique: 0, error: -78 (Function not implemented), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 44\r\nLOOKUP /._.\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 44\r\nLOOKUP /._.\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 44\r\nLOOKUP /._.\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 44\r\nLOOKUP /._.\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 44\r\nLOOKUP /._.\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: GETATTR (3), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 1, opcode: CREATE (35), nodeid: 1, insize: 58\r\n   unique: 1, error: -78 (Function not implemented), outsize: 16\r\nunique: 0, opcode: MKNOD (8), nodeid: 1, insize: 58\r\nMKNOD /.DS_Store\r\n   unique: 0, error: -78 (Function not implemented), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 44\r\nLOOKUP /._.\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 48\r\nLOOKUP /.hidden\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 44\r\nLOOKUP /._.\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: OPENDIR (27), nodeid: 1, insize: 48\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 32\r\nunique: 0, opcode: READDIR (28), nodeid: 1, insize: 64\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 120\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /hello.txt\r\n   NODEID: 2\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 152\r\nunique: 0, opcode: GETATTR (3), nodeid: 2, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: READDIR (28), nodeid: 1, insize: 64\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 0, opcode: READDIR (28), nodeid: 1, insize: 64\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 1, opcode: READDIR (28), nodeid: 1, insize: 64\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 0, opcode: RELEASEDIR (29), nodeid: 1, insize: 64\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: GETATTR (3), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: OPENDIR (27), nodeid: 1, insize: 48\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 32\r\nunique: 0, opcode: RELEASEDIR (29), nodeid: 1, insize: 64\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 1, opcode: GETATTR (3), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: OPEN (14), nodeid: 2, insize: 48\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 32\r\nOPEN[0] flags: 0x0 /hello.txt\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: FLUSH (25), nodeid: 2, insize: 64\r\nFLUSH[0]\r\n   unique: 0, error: -78 (Function not implemented), outsize: 16\r\nunique: 1, opcode: RELEASE (18), nodeid: 2, insize: 64\r\nRELEASE[0] flags: 0x0\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 0, opcode: OPEN (14), nodeid: 2, insize: 48\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 32\r\nOPEN[0] flags: 0x0 /hello.txt\r\nunique: 1, opcode: RELEASE (18), nodeid: 2, insize: 64\r\nRELEASE[0] flags: 0x0\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 0, opcode: GETATTR (3), nodeid: 2, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 1, opcode: OPEN (14), nodeid: 2, insize: 48\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 32\r\nOPEN[0] flags: 0x0 /hello.txt\r\nunique: 0, opcode: RELEASE (18), nodeid: 2, insize: 64\r\nRELEASE[0] flags: 0x0\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 1, opcode: OPEN (14), nodeid: 2, insize: 48\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 32\r\nOPEN[0] flags: 0x0 /hello.txt\r\nunique: 0, opcode: RELEASE (18), nodeid: 2, insize: 64\r\nRELEASE[0] flags: 0x0\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 1, opcode: GETATTR (3), nodeid: 2, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 62\r\nLOOKUP /.ql_disablethumbnails\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 57\r\nLOOKUP /.ql_disablecache\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: OPEN (14), nodeid: 2, insize: 48\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 32\r\nOPEN[0] flags: 0x0 /hello.txt\r\nunique: 1, opcode: RELEASE (18), nodeid: 2, insize: 64\r\nRELEASE[0] flags: 0x0\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 0, opcode: OPEN (14), nodeid: 2, insize: 48\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 32\r\nOPEN[0] flags: 0x0 /hello.txt\r\nunique: 1, opcode: RELEASE (18), nodeid: 2, insize: 64\r\nRELEASE[0] flags: 0x0\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 0, opcode: GETATTR (3), nodeid: 2, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: OPEN (14), nodeid: 2, insize: 48\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 32\r\nOPEN[0] flags: 0x0 /hello.txt\r\nunique: 1, opcode: RELEASE (18), nodeid: 2, insize: 64\r\nRELEASE[0] flags: 0x0\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 0, opcode: OPEN (14), nodeid: 2, insize: 48\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 32\r\nOPEN[0] flags: 0x0 /hello.txt\r\nunique: 1, opcode: RELEASE (18), nodeid: 2, insize: 64\r\nRELEASE[0] flags: 0x0\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 16\r\nunique: 0, opcode: GETATTR (3), nodeid: 2, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: GETATTR (3), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 0, opcode: MKNOD (8), nodeid: 1, insize: 58\r\nMKNOD /.DS_Store\r\n   unique: 0, error: -78 (Function not implemented), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 50\r\nLOOKUP /.DS_Store\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: GETATTR (3), nodeid: 2, insize: 40\r\n   unique: 0, error: 0 (Undefined error: 0), outsize: 128\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 1, error: -2 (No such file or directory), outsize: 16\r\nunique: 0, opcode: LOOKUP (1), nodeid: 1, insize: 52\r\nLOOKUP /._hello.txt\r\n   unique: 0, error: -2 (No such file or directory), outsize: 16\r\nunique: 1, opcode: STATFS (17), nodeid: 1, insize: 40\r\n   unique: 1, error: 0 (Undefined error: 0), outsize: 96\r\n\r\n```\r\n\r\nRunning on OSX 10.10 produces a similar log (attempts to read metadata, opening and closing the file to be deleted, etc.), but does issue an unlink call.\r\n\r\nLarger filesystems that support file creation, writing, etc. seem to produce comparable behavior: on OSX 10.11 only, deleting a file via finder produces error -43, after reading metadata from ._ files."}}