9p-local.c (6b3b279bd670c6a2fa23c9049820c814f0e2c846) 9p-local.c (b5989326f558faedd2511f29459112cced2ca8f5)
1/*
2 * 9p Posix callback
3 *
4 * Copyright IBM, Corp. 2010
5 *
6 * Authors:
7 * Anthony Liguori <aliguori@us.ibm.com>
8 *

--- 776 unchanged lines hidden (view full) ---

785 }
786 if (fs_ctx->export_flags & V9FS_SM_MAPPED) {
787 /* Actual credentials are part of extended attrs */
788 uid_t tmp_uid;
789 gid_t tmp_gid;
790 mode_t tmp_mode;
791 dev_t tmp_dev;
792
1/*
2 * 9p Posix callback
3 *
4 * Copyright IBM, Corp. 2010
5 *
6 * Authors:
7 * Anthony Liguori <aliguori@us.ibm.com>
8 *

--- 776 unchanged lines hidden (view full) ---

785 }
786 if (fs_ctx->export_flags & V9FS_SM_MAPPED) {
787 /* Actual credentials are part of extended attrs */
788 uid_t tmp_uid;
789 gid_t tmp_gid;
790 mode_t tmp_mode;
791 dev_t tmp_dev;
792
793 if (fgetxattr(fd, "user.virtfs.uid", &tmp_uid, sizeof(uid_t)) > 0) {
793 if (qemu_fgetxattr(fd, "user.virtfs.uid",
794 &tmp_uid, sizeof(uid_t)) > 0) {
794 stbuf->st_uid = le32_to_cpu(tmp_uid);
795 }
795 stbuf->st_uid = le32_to_cpu(tmp_uid);
796 }
796 if (fgetxattr(fd, "user.virtfs.gid", &tmp_gid, sizeof(gid_t)) > 0) {
797 if (qemu_fgetxattr(fd, "user.virtfs.gid",
798 &tmp_gid, sizeof(gid_t)) > 0) {
797 stbuf->st_gid = le32_to_cpu(tmp_gid);
798 }
799 stbuf->st_gid = le32_to_cpu(tmp_gid);
800 }
799 if (fgetxattr(fd, "user.virtfs.mode", &tmp_mode, sizeof(mode_t)) > 0) {
801 if (qemu_fgetxattr(fd, "user.virtfs.mode",
802 &tmp_mode, sizeof(mode_t)) > 0) {
800 stbuf->st_mode = le32_to_cpu(tmp_mode);
801 }
803 stbuf->st_mode = le32_to_cpu(tmp_mode);
804 }
802 if (fgetxattr(fd, "user.virtfs.rdev", &tmp_dev, sizeof(dev_t)) > 0) {
805 if (qemu_fgetxattr(fd, "user.virtfs.rdev",
806 &tmp_dev, sizeof(dev_t)) > 0) {
803 stbuf->st_rdev = le64_to_cpu(tmp_dev);
804 }
805 } else if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE) {
806 errno = EOPNOTSUPP;
807 return -1;
808 }
809 return err;
810}

--- 802 unchanged lines hidden ---
807 stbuf->st_rdev = le64_to_cpu(tmp_dev);
808 }
809 } else if (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE) {
810 errno = EOPNOTSUPP;
811 return -1;
812 }
813 return err;
814}

--- 802 unchanged lines hidden ---