func (n *pathInode) Chmod(file nodefs.File, perms uint32, context *fuse.Context) (code fuse.Status) { // Note that Linux currently (Linux 4.4) DOES NOT pass a file descriptor // to FUSE for fchmod. We still check because that may change in the future. if file != nil { code = file.Chmod(perms) if code != fuse.ENOSYS { return code } } files := n.Inode().Files(fuse.O_ANYWRITE) for _, f := range files { // TODO - pass context code = f.Chmod(perms) if code.Ok() { return } } if len(files) == 0 || code == fuse.ENOSYS || code == fuse.EBADF { code = n.fs.Chmod(n.GetPath(), perms, context) } return code }