int vfs_closedir(int fd) { if(oper->closedir) { vfs_fd *vfd = vfs_fd_get(fd); if(!vfd) return -1; int ret = oper->closedir(vfd); vfs_fd_close(vfd); return ret; } return -1; }
int vfs_fuse_release(const char *path, struct fuse_file_info *fi) { struct vfs_inode *node; int ret; if (!store_get_readonly()) { if (!(node = vfs_fd_lookup(fi->fh))) return -ENOENT; if ((ret = vfs_node_commit(node)) != 0) return ret; } if (!vfs_fd_close(fi->fh)) return -EFAULT; return 0; }