summaryrefslogtreecommitdiffstats
path: root/cddl/contrib/opensolaris/cmd
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2014-12-07 18:15:27 +0000
committerdelphij <delphij@FreeBSD.org>2014-12-07 18:15:27 +0000
commit24c34f7c2a74fba0825876dc52b47e7c4972f523 (patch)
tree4c8b8087b0d89e3f5a6fdc1a54ca6ed786c99e63 /cddl/contrib/opensolaris/cmd
parent15bfe2d26274bcac738882fc5c83faa0d0eddabe (diff)
downloadFreeBSD-src-24c34f7c2a74fba0825876dc52b47e7c4972f523.zip
FreeBSD-src-24c34f7c2a74fba0825876dc52b47e7c4972f523.tar.gz
MFV r275537:
Illumos issue: 5316 allow smbadm join to use RPC (Due to our lack of smbsrv this is mostly no-op on FreeBSD) MFC after: 2 weeks
Diffstat (limited to 'cddl/contrib/opensolaris/cmd')
-rw-r--r--cddl/contrib/opensolaris/cmd/zfs/zfs_main.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c b/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
index baac993..f883186 100644
--- a/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
+++ b/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
@@ -68,6 +68,7 @@
#ifdef sun
#include <aclutils.h>
#include <directory.h>
+#include <idmap.h>
#endif
#include "zfs_iter.h"
@@ -2390,10 +2391,9 @@ 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;
#ifdef sun
int err;
- directory_error_t e;
+ int flag = IDMAP_REQ_FLG_USE_CACHE;
#endif
smbentity = B_TRUE;
@@ -2416,10 +2416,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;
}
OpenPOWER on IntegriCloud