summaryrefslogtreecommitdiff
path: root/usr/src/cmd/zfs
diff options
context:
space:
mode:
authorGordon Ross <gwr@nexenta.com>2012-12-16 22:41:29 -0500
committerGordon Ross <gwr@nexenta.com>2014-11-18 14:17:36 -0500
commit1ed6b69a5ca1ca3ee5e9a4931f74e2237c7e1c9f (patch)
treecbf5612fc6b3f93ddc715d40058879ef005f72de /usr/src/cmd/zfs
parent177d5b5f8c0e969013441207a0a705ae66b08cf7 (diff)
downloadillumos-gate-1ed6b69a5ca1ca3ee5e9a4931f74e2237c7e1c9f.tar.gz
5316 allow smbadm join to use RPC
Reviewed by: Bayard Bell <bayard.bell@nexenta.com> Reviewed by: Dan McDonald <danmcd@nexenta.com> Reviewed by: Thomas Keiser <thomas.keiser@nexenta.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src/cmd/zfs')
-rw-r--r--usr/src/cmd/zfs/zfs_main.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/usr/src/cmd/zfs/zfs_main.c b/usr/src/cmd/zfs/zfs_main.c
index 34ddad2c38..109a2cf109 100644
--- a/usr/src/cmd/zfs/zfs_main.c
+++ b/usr/src/cmd/zfs/zfs_main.c
@@ -63,6 +63,7 @@
#include <libuutil.h>
#include <aclutils.h>
#include <directory.h>
+#include <idmap.h>
#include "zfs_iter.h"
#include "zfs_util.h"
@@ -2372,9 +2373,8 @@ userspace_cb(void *arg, const char *domain, uid_t rid, uint64_t space)
/* SMB */
char sid[ZFS_MAXNAMELEN + 32];
uid_t id;
- uint64_t classes;
int err;
- directory_error_t e;
+ int flag = IDMAP_REQ_FLG_USE_CACHE;
smbentity = B_TRUE;
@@ -2391,10 +2391,13 @@ userspace_cb(void *arg, const char *domain, uid_t rid, uint64_t space)
if (err == 0) {
rid = id;
if (!cb->cb_sid2posix) {
- e = directory_name_from_sid(NULL, sid, &name,
- &classes);
- if (e != NULL)
- directory_error_free(e);
+ if (type == USTYPE_SMB_USR) {
+ (void) idmap_getwinnamebyuid(rid, flag,
+ &name, NULL);
+ } else {
+ (void) idmap_getwinnamebygid(rid, flag,
+ &name, NULL);
+ }
if (name == NULL)
name = sid;
}