static int iconv_access(const char *path, int mask) { struct iconv *ic = iconv_get(); char *newpath; int err = iconv_convpath(ic, path, &newpath, 0); if (!err) { err = fuse_fs_access(ic->next, newpath, mask); free(newpath); } return err; }
static int subdir_access(const char *path, int mask) { struct subdir *d = subdir_get(); char *newpath; int err = subdir_addpath(d, path, &newpath); if (!err) { err = fuse_fs_access(d->next, newpath, mask); free(newpath); } return err; }
static int volicon_access(const char *path, int mask) { if (volicon_is_a_magic_file(path)) { if ((mask & W_OK) || (mask & X_OK)) { return -EACCES; } return 0; } return fuse_fs_access(volicon_get()->next, path, mask); }