aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/zfs_fuid.c
diff options
context:
space:
mode:
authorChunwei Chen <[email protected]>2016-06-17 17:36:01 -0700
committerBrian Behlendorf <[email protected]>2016-06-21 09:58:37 -0700
commit100a91aa3e9773f2a2a373c5cb066b52c780716c (patch)
treeff7039d9e5fc5eda2f481f4bd60fcd0ad6cc2d39 /module/zfs/zfs_fuid.c
parentab9f4b0b824ab4cc64a4fa382c037f4154de12d6 (diff)
Fix NFS credential
The commit f74b821 caused a regression where creating file through NFS will always create a file owned by root. This is because the patch enables the KSID code in zfs_acl_ids_create, which it would use euid and egid of the current process. However, on Linux, we should use fsuid and fsgid for file operations, which is the original behaviour. So we revert this part of code. The patch also enables secpolicy_vnode_*, since they are also used in file operations, we change them to use fsuid and fsgid. Signed-off-by: Chunwei Chen <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #4772 Closes #4758
Diffstat (limited to 'module/zfs/zfs_fuid.c')
-rw-r--r--module/zfs/zfs_fuid.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/module/zfs/zfs_fuid.c b/module/zfs/zfs_fuid.c
index d4916bf58..6ca61b872 100644
--- a/module/zfs/zfs_fuid.c
+++ b/module/zfs/zfs_fuid.c
@@ -488,6 +488,7 @@ zfs_fuid_node_add(zfs_fuid_info_t **fuidpp, const char *domain, uint32_t rid,
}
}
+#ifdef HAVE_KSID
/*
* Create a file system FUID, based on information in the users cred
*
@@ -500,7 +501,6 @@ uint64_t
zfs_fuid_create_cred(zfs_sb_t *zsb, zfs_fuid_type_t type,
cred_t *cr, zfs_fuid_info_t **fuidp)
{
-#ifdef HAVE_KSID
uint64_t idx;
ksid_t *ksid;
uint32_t rid;
@@ -540,12 +540,8 @@ zfs_fuid_create_cred(zfs_sb_t *zsb, zfs_fuid_type_t type,
zfs_fuid_node_add(fuidp, kdomain, rid, idx, id, type);
return (FUID_ENCODE(idx, rid));
-#else
- VERIFY(type == ZFS_OWNER || type == ZFS_GROUP);
-
- return ((uint64_t)((type == ZFS_OWNER) ? crgetuid(cr) : crgetgid(cr)));
-#endif /* HAVE_KSID */
}
+#endif /* HAVE_KSID */
/*
* Create a file system FUID for an ACL ace