Lines Matching refs:name

120 static FILE *local_fopenat(int dirfd, const char *name, const char *mode)  in local_fopenat()  argument
136 fd = openat_file(dirfd, name, flags, o_mode); in local_fopenat()
148 static void local_mapped_file_attr(int dirfd, const char *name, in local_mapped_file_attr() argument
155 if (strcmp(name, ".")) { in local_mapped_file_attr()
161 fp = local_fopenat(map_dirfd, name, "r"); in local_mapped_file_attr()
189 char *name = g_path_get_basename(fs_path->data); in local_lstat() local
197 err = qemu_fstatat(dirfd, name, stbuf, AT_SYMLINK_NOFOLLOW); in local_lstat()
208 if (fgetxattrat_nofollow(dirfd, name, "user.virtfs.uid", &tmp_uid, in local_lstat()
212 if (fgetxattrat_nofollow(dirfd, name, "user.virtfs.gid", &tmp_gid, in local_lstat()
216 if (fgetxattrat_nofollow(dirfd, name, "user.virtfs.mode", &tmp_mode, in local_lstat()
220 if (fgetxattrat_nofollow(dirfd, name, "user.virtfs.rdev", &tmp_dev, in local_lstat()
225 local_mapped_file_attr(dirfd, name, stbuf); in local_lstat()
231 g_free(name); in local_lstat()
236 static int local_set_mapped_file_attrat(int dirfd, const char *name, in local_set_mapped_file_attrat() argument
244 bool is_root = !strcmp(name, "."); in local_set_mapped_file_attrat()
266 fp = local_fopenat(map_dirfd, name, "r"); in local_set_mapped_file_attrat()
295 fp = local_fopenat(map_dirfd, name, "w"); in local_set_mapped_file_attrat()
342 static int fchmodat_nofollow(int dirfd, const char *name, mode_t mode) in fchmodat_nofollow() argument
352 if (qemu_fstatat(dirfd, name, &stbuf, AT_SYMLINK_NOFOLLOW)) { in fchmodat_nofollow()
360 fd = openat_file(dirfd, name, O_RDONLY | O_PATH_9P_UTIL | O_NOFOLLOW, 0); in fchmodat_nofollow()
368 fd = openat_file(dirfd, name, O_WRONLY, 0); in fchmodat_nofollow()
444 const char *name, FsCred *credp) in local_set_cred_passthrough() argument
446 if (fchownat(dirfd, name, credp->fc_uid, credp->fc_gid, in local_set_cred_passthrough()
457 return fchmodat_nofollow(dirfd, name, credp->fc_mode & 07777); in local_set_cred_passthrough()
478 char *name = g_path_get_basename(fs_path->data); in local_readlink() local
486 tsize = readlinkat(dirfd, name, buf, bufsz); in local_readlink()
489 g_free(name); in local_readlink()
548 static bool local_is_mapped_file_metadata(FsContext *fs_ctx, const char *name) in local_is_mapped_file_metadata() argument
551 !strcmp(name, VIRTFS_META_DIR) || !strcmp(name, VIRTFS_META_ROOT_FILE); in local_is_mapped_file_metadata()
639 char *name = g_path_get_basename(fs_path->data); in local_chmod() local
649 ret = local_set_xattrat(dirfd, name, credp); in local_chmod()
651 ret = local_set_mapped_file_attrat(dirfd, name, credp); in local_chmod()
654 ret = fchmodat_nofollow(dirfd, name, credp->fc_mode); in local_chmod()
660 g_free(name); in local_chmod()
665 const char *name, FsCred *credp) in local_mknod() argument
671 local_is_mapped_file_metadata(fs_ctx, name)) { in local_mknod()
683 err = qemu_mknodat(dirfd, name, fs_ctx->fmode | S_IFREG, 0); in local_mknod()
689 err = local_set_xattrat(dirfd, name, credp); in local_mknod()
691 err = local_set_mapped_file_attrat(dirfd, name, credp); in local_mknod()
698 err = qemu_mknodat(dirfd, name, credp->fc_mode, credp->fc_rdev); in local_mknod()
702 err = local_set_cred_passthrough(fs_ctx, dirfd, name, credp); in local_mknod()
710 unlinkat_preserve_errno(dirfd, name, 0); in local_mknod()
717 const char *name, FsCred *credp) in local_mkdir() argument
723 local_is_mapped_file_metadata(fs_ctx, name)) { in local_mkdir()
735 err = qemu_mkdirat(dirfd, name, fs_ctx->dmode); in local_mkdir()
742 err = local_set_xattrat(dirfd, name, credp); in local_mkdir()
744 err = local_set_mapped_file_attrat(dirfd, name, credp); in local_mkdir()
751 err = qemu_mkdirat(dirfd, name, credp->fc_mode); in local_mkdir()
755 err = local_set_cred_passthrough(fs_ctx, dirfd, name, credp); in local_mkdir()
763 unlinkat_preserve_errno(dirfd, name, AT_REMOVEDIR); in local_mkdir()
814 static int local_open2(FsContext *fs_ctx, V9fsPath *dir_path, const char *name, in local_open2() argument
822 local_is_mapped_file_metadata(fs_ctx, name)) { in local_open2()
840 fd = openat_file(dirfd, name, flags, fs_ctx->fmode); in local_open2()
847 err = local_set_xattrat(dirfd, name, credp); in local_open2()
849 err = local_set_mapped_file_attrat(dirfd, name, credp); in local_open2()
856 fd = openat_file(dirfd, name, flags, credp->fc_mode); in local_open2()
860 err = local_set_cred_passthrough(fs_ctx, dirfd, name, credp); in local_open2()
870 unlinkat_preserve_errno(dirfd, name, in local_open2()
880 V9fsPath *dir_path, const char *name, FsCred *credp) in local_symlink() argument
886 local_is_mapped_file_metadata(fs_ctx, name)) { in local_symlink()
902 fd = openat_file(dirfd, name, O_CREAT | O_EXCL | O_RDWR, in local_symlink()
919 err = local_set_xattrat(dirfd, name, credp); in local_symlink()
921 err = local_set_mapped_file_attrat(dirfd, name, credp); in local_symlink()
928 err = symlinkat(oldpath, dirfd, name); in local_symlink()
932 err = fchownat(dirfd, name, credp->fc_uid, credp->fc_gid, in local_symlink()
949 unlinkat_preserve_errno(dirfd, name, 0); in local_symlink()
956 V9fsPath *dirpath, const char *name) in local_link() argument
964 local_is_mapped_file_metadata(ctx, name)) { in local_link()
980 ret = linkat(odirfd, oname, ndirfd, name, 0); in local_link()
1005 ret = linkat(omap_dirfd, oname, nmap_dirfd, name, 0); in local_link()
1019 unlinkat_preserve_errno(ndirfd, name, 0); in local_link()
1045 char *name = g_path_get_basename(fs_path->data); in local_chown() local
1057 ret = fchownat(dirfd, name, credp->fc_uid, credp->fc_gid, in local_chown()
1060 ret = local_set_xattrat(dirfd, name, credp); in local_chown()
1062 ret = local_set_mapped_file_attrat(dirfd, name, credp); in local_chown()
1067 g_free(name); in local_chown()
1076 char *name = g_path_get_basename(fs_path->data); in local_utimensat() local
1084 ret = qemu_utimensat(dirfd, name, buf, AT_SYMLINK_NOFOLLOW); in local_utimensat()
1088 g_free(name); in local_utimensat()
1092 static int local_unlinkat_common(FsContext *ctx, int dirfd, const char *name, in local_unlinkat_common() argument
1111 fd = openat_dir(dirfd, name); in local_unlinkat_common()
1123 ret = qemu_unlinkat(map_dirfd, name, 0); in local_unlinkat_common()
1133 return qemu_unlinkat(dirfd, name, flags); in local_unlinkat_common()
1140 char *name = g_path_get_basename(path); in local_remove() local
1150 if (qemu_fstatat(dirfd, name, &stbuf, AT_SYMLINK_NOFOLLOW) < 0) { in local_remove()
1158 err = local_unlinkat_common(ctx, dirfd, name, flags); in local_remove()
1162 g_free(name); in local_remove()
1199 const char *name, void *value, size_t size) in local_lgetxattr() argument
1203 return v9fs_get_xattr(ctx, path, name, value, size); in local_lgetxattr()
1214 static int local_lsetxattr(FsContext *ctx, V9fsPath *fs_path, const char *name, in local_lsetxattr() argument
1219 return v9fs_set_xattr(ctx, path, name, value, size, flags); in local_lsetxattr()
1223 const char *name) in local_lremovexattr() argument
1227 return v9fs_remove_xattr(ctx, path, name); in local_lremovexattr()
1231 const char *name, V9fsPath *target) in local_name_to_path() argument
1234 local_is_mapped_file_metadata(ctx, name)) { in local_name_to_path()
1240 if (!strcmp(name, ".")) { in local_name_to_path()
1243 } else if (!strcmp(name, "..")) { in local_name_to_path()
1256 assert(!strchr(name, '/')); in local_name_to_path()
1257 v9fs_path_sprintf(target, "%s/%s", dir_path->data, name); in local_name_to_path()
1259 } else if (!strcmp(name, "/") || !strcmp(name, ".") || in local_name_to_path()
1260 !strcmp(name, "..")) { in local_name_to_path()
1264 assert(!strchr(name, '/')); in local_name_to_path()
1265 v9fs_path_sprintf(target, "./%s", name); in local_name_to_path()
1369 const char *name, int flags) in local_unlinkat() argument
1375 local_is_mapped_file_metadata(ctx, name)) { in local_unlinkat()
1385 ret = local_unlinkat_common(ctx, dirfd, name, flags); in local_unlinkat()