Lines Matching defs:fs

40 #define	FUSE_UVFS_FS(fs) libuvfs_stash_fs_get(fs, FUSE_FS_INFO, NULL)
128 fuse_uvfs_file_info_get(libuvfs_fs_t *fs, libuvfs_fid_t *fid,
140 if (libuvfs_name_fid_wrlock(fs, fid) != 0)
146 if ((rc = libuvfs_stash_fid_get(fs, fid, FUSE_FID_FFI, NULL)) != NULL)
152 len = libuvfs_name_path(fs, fid, 0, NULL, path, sizeof (path));
170 ffi = libuvfs_stash_fid_store(fs, fid, FUSE_FID_FFI, B_TRUE, rc);
186 (void) libuvfs_name_fid_unlock(fs, fid);
204 fuse_uvfs_stat_convert(libuvfs_fs_t *fs, libuvfs_stat_t *stat,
234 if ((rootfid = libuvfs_stash_fs_get(fs, FUSE_ROOT_FID, NULL)) == NULL)
241 } else if (libuvfs_name_parent(fs, my_fid, 0, &stat->l_pfid) == 0) {
256 fuse_uvfs_fs_init(libuvfs_fs_t *fs, struct fuse_fs *fuse_fs)
260 info = libuvfs_stash_fs_get(fs, FUSE_FS_INFO, NULL);
264 winner = libuvfs_stash_fs_store(fs, FUSE_FS_INFO, B_FALSE,
274 fuse_uvfs_vfsroot(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
279 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
286 rootfid = libuvfs_stash_fs_get(fs, FUSE_ROOT_FID, NULL);
294 (void) fuse_uvfs_stat_convert(fs, &res.root_stat, &statbuf, NULL,
301 fuse_uvfs_vget(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
306 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
314 len = libuvfs_name_path(fs, &args->lcvg_fid, 0, NULL, path, MAXPATHLEN);
324 error = fuse_uvfs_stat_convert(fs, &res.lcvg_stat, &statbuf,
333 fuse_uvfs_statvfs(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
335 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
358 fuse_uvfs_remove_hidden(libuvfs_fs_t *fs, struct fuse_fs *fuse_fs,
365 len = libuvfs_name_path(fs, fid, 0, NULL, path, sizeof (path));
369 hidden = libuvfs_stash_fid_get(fs, fid,
378 libuvfs_name_delete(fs, &hidden->hidden_dirfd,
383 (void) libuvfs_stash_fid_remove(fs, fid, FUSE_FID_HIDDEN);
388 fuse_uvfs_close_common(libuvfs_fs_t *fs, libuvfs_fid_t *fid, uint64_t count)
390 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
407 if (libuvfs_name_fid_wrlock(fs, fid) != 0)
410 len = libuvfs_name_path(fs, fid, 0, NULL, path, MAXPATHLEN);
425 ffi = libuvfs_stash_fid_store(fs, fid, FUSE_FID_FFI, B_TRUE, NULL);
431 dirhp = libuvfs_stash_fid_store(fs, fid, FUSE_FID_DIR_HANDLE, B_TRUE,
439 fuse_uvfs_remove_hidden(fs, fuse_fs, fid, &statbuf);
450 (void) libuvfs_name_fid_unlock(fs, fid);
456 fuse_uvfs_close(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
458 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
468 error = fuse_uvfs_close_common(fs, fid, args->lccf_count);
474 fuse_uvfs_lookup(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
478 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
490 len = libuvfs_name_path(fs, dirfid, 0, NULL, path, MAXPATHLEN);
502 (void) fuse_uvfs_stat_convert(fs, &res.lclr_stat, &buf, NULL, dirfid);
507 libuvfs_name_lookup(fs, dirfid, args->lcla_nm, &found);
509 libuvfs_fid_unique(fs, &found);
510 libuvfs_name_store(fs, dirfid, args->lcla_nm, &found, B_TRUE,
521 fuse_uvfs_open(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
523 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
533 fuse_uvfs_file_info_get(fs, fid, fuse_fs) ? 0 : ESTALE);
537 fuse_uvfs_addmap(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
539 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
549 fuse_uvfs_file_info_get(fs, fid, fuse_fs) ? 0 : ESTALE);
553 fuse_uvfs_delmap(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
555 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
565 error = fuse_uvfs_close_common(fs, fid, args->lcma_count);
575 libuvfs_fs_t *fs = dirhp->dh_fs;
587 libuvfs_name_lookup(fs, &dirhp->dh_fid, name, &found);
589 inode = libuvfs_fid_to_id(fs, &found);
646 fuse_uvfs_readdir(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
648 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
667 if (libuvfs_name_fid_wrlock(fs, fid) != 0) {
672 dirhp = libuvfs_stash_fid_get(fs, fid,
678 dirhp->dh_fs = fs;
686 len = libuvfs_name_path(fs, fid, 0, NULL,
695 existing = libuvfs_stash_fid_store(fs, fid, FUSE_FID_DIR_HANDLE,
705 ffi = fuse_uvfs_file_info_get(fs, fid, fuse_fs);
793 (void) libuvfs_name_fid_unlock(fs, fid);
799 fuse_uvfs_getattr(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
801 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
814 len = libuvfs_name_path(fs, fid, 0, NULL, path, MAXPATHLEN);
824 error = fuse_uvfs_stat_convert(fs, &res.lcgr_stat, &statbuf,
832 fuse_uvfs_symlink(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
834 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
847 len = libuvfs_name_path(fs, dirfid, 0, NULL, path, MAXPATHLEN);
856 libuvfs_fid_unique(fs, &newfid);
857 libuvfs_name_store(fs, dirfid, args->lcsl_name, &newfid, B_TRUE, NULL);
863 fuse_uvfs_readlink(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
865 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
881 len = libuvfs_name_path(fs, fid, 0, NULL, path, MAXPATHLEN);
902 fuse_uvfs_link(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
904 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
918 len = libuvfs_name_path(fs, srcfid, 0, NULL, spath, MAXPATHLEN);
924 len = libuvfs_name_path(fs, dirfid, 0, NULL, tpath, MAXPATHLEN);
935 libuvfs_name_store(fs, dirfid, args->lclf_name, srcfid, B_FALSE, NULL);
941 fuse_uvfs_hide_node(libuvfs_fs_t *fs, libuvfs_fid_t *dirfid,
945 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
968 ".fuse_hidden%08llx%08llx", libuvfs_fid_to_id(fs, fid),
971 libuvfs_name_lookup(fs, dirfid, newname, &found);
992 hidden = libuvfs_stash_fid_get(fs, fid,
1007 libuvfs_name_store(fs, dirfid, newname, fid, B_FALSE, NULL);
1008 libuvfs_name_delete(fs, dirfid, name, fid);
1009 (void) libuvfs_stash_fid_store(fs, fid, FUSE_FID_HIDDEN,
1016 fuse_uvfs_rmdir(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1018 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1033 if (libuvfs_name_fid_wrlock(fs, dirfid) != 0) {
1038 len = libuvfs_name_path(fs, dirfid, 0, NULL, dirpath, MAXPATHLEN);
1044 libuvfs_name_lookup(fs, dirfid, args->lcrd_name, &fid);
1056 ffi = libuvfs_stash_fid_get(fs, &fid, FUSE_FID_FFI, NULL);
1059 error = fuse_uvfs_hide_node(fs, dirfid, &fid, dirpath,
1064 libuvfs_name_delete(fs, dirfid, args->lcrd_name, NULL);
1068 (void) libuvfs_name_fid_unlock(fs, dirfid);
1074 fuse_uvfs_remove(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1076 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1091 if (libuvfs_name_fid_wrlock(fs, dirfid) != 0) {
1096 libuvfs_name_lookup(fs, dirfid, args->lcrf_name, &fid);
1102 len = libuvfs_name_path(fs, dirfid, 0, NULL, dirpath, MAXPATHLEN);
1115 ffi = libuvfs_stash_fid_get(fs, &fid, FUSE_FID_FFI, NULL);
1118 error = fuse_uvfs_hide_node(fs, dirfid, &fid, dirpath,
1126 libuvfs_name_delete(fs, dirfid, args->lcrf_name, NULL);
1128 (void) libuvfs_name_fid_unlock(fs, dirfid);
1134 fuse_uvfs_rename(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1136 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1153 if (libuvfs_name_fid_wrlock(fs, sdfid) != 0) {
1162 libuvfs_name_lookup(fs, sdfid, args->lcrn_sname, &sfid);
1168 len = libuvfs_name_path(fs, sdfid, 0, NULL, spath, MAXPATHLEN);
1177 len = libuvfs_name_path(fs, tdfid, 0, NULL, tdirpath, MAXPATHLEN);
1186 libuvfs_name_lookup(fs, tdfid, args->lcrn_tname, &tfid);
1195 ffi = libuvfs_stash_fid_get(fs, &tfid, FUSE_FID_FFI, NULL);
1198 if (error = fuse_uvfs_hide_node(fs, tdfid, &tfid,
1207 libuvfs_name_delete(fs, sdfid, args->lcrn_sname, NULL);
1208 libuvfs_name_store(fs, tdfid, args->lcrn_tname, &sfid, B_TRUE, NULL);
1210 (void) libuvfs_name_fid_unlock(fs, sdfid);
1216 fuse_uvfs_setattr(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1218 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1232 len = libuvfs_name_path(fs, &arg->lcsa_fid, 0, NULL, path, MAXPATHLEN);
1292 error = fuse_uvfs_stat_convert(fs, &res.set_attributes, &statbuf,
1300 fuse_uvfs_read(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1302 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1322 len = libuvfs_name_path(fs, &arg->lcra_fid, 0, NULL, path, MAXPATHLEN);
1332 ffi = fuse_uvfs_file_info_get(fs, fid, fuse_fs);
1357 error = fuse_uvfs_stat_convert(fs, &resp->lcrr_stat, &statbuf,
1366 fuse_uvfs_write(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1368 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1382 len = libuvfs_name_path(fs, fid, 0, NULL, path, MAXPATHLEN);
1388 ffi = fuse_uvfs_file_info_get(fs, fid, fuse_fs);
1411 error = fuse_uvfs_stat_convert(fs, &res.lcwr_stat, &statbuf,
1419 fuse_uvfs_create(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1421 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1436 if (libuvfs_name_fid_rdlock(fs, dirfid) != 0) {
1441 len = libuvfs_name_path(fs, dirfid, 0, NULL, path, MAXPATHLEN);
1443 (void) libuvfs_name_fid_unlock(fs, dirfid);
1454 (void) libuvfs_name_fid_unlock(fs, dirfid);
1458 libuvfs_fid_unique(fs, &newfid);
1459 libuvfs_name_store(fs, dirfid, arg->lccf_name, &newfid, B_TRUE, NULL);
1464 (void) libuvfs_name_fid_unlock(fs, dirfid);
1471 (void) fuse_uvfs_stat_convert(fs, &res.lccf_stat, &statbuf,
1479 fuse_uvfs_mkdir(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1481 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1495 if (libuvfs_name_fid_rdlock(fs, dirfid) != 0) {
1500 len = libuvfs_name_path(fs, dirfid, 0, NULL, path, MAXPATHLEN);
1502 (void) libuvfs_name_fid_unlock(fs, dirfid);
1511 (void) libuvfs_name_fid_unlock(fs, dirfid);
1515 libuvfs_fid_unique(fs, &newfid);
1516 libuvfs_name_store(fs, dirfid, arg->lcmd_name, &newfid, B_TRUE, NULL);
1521 (void) libuvfs_name_fid_unlock(fs, dirfid);
1528 (void) fuse_uvfs_stat_convert(fs, &res.lcmd_stat, &statbuf,
1535 fuse_uvfs_space(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1537 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1548 len = libuvfs_name_path(fs, &arg->lcfs_fid, 0, NULL, path, MAXPATHLEN);
1564 fuse_uvfs_fsync(libuvfs_fs_t *fs, void *varg, size_t argsize, ucred_t *cr)
1566 struct fuse_fs *fuse_fs = FUSE_UVFS_FS(fs);
1580 len = libuvfs_name_path(fs, fid, 0, NULL, path, MAXPATHLEN);
1591 ffi = fuse_uvfs_file_info_get(fs, fid, fuse_fs);
1646 fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn)
1648 if (fs->op.init)
1649 fs->user_data = fs->op.init(conn);
1653 fuse_fs_destroy(struct fuse_fs *fs)
1655 if (fs->op.destroy)
1656 fs->op.destroy(fs->user_data);
1657 umem_free(fs, sizeof (struct fuse_fs));
1671 struct fuse_fs *fs;
1700 fs = (struct fuse_fs *)umem_zalloc(sizeof (struct fuse_fs),
1702 if (!fs) {
1709 fs->user_data = user_data;
1711 (void) memcpy(&fs->op, op, op_size);
1724 fuse_fs_init(fs, &fci);
1728 fuse_fs_destroy(fs);
1734 * in fs stash and setup root dir.
1741 fuse->fuse_fs = fs;
1745 (void) fuse_uvfs_fs_init(ch->fuse_uvfs_fs, fs);
1750 fuse_fs_destroy(fs);