Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Jul 2010 23:40:07 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-fs@FreeBSD.org
Subject:   Re: kern/148709: commit references a PR
Message-ID:  <201007222340.o6MNe7Y2073114@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/148709; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/148709: commit references a PR
Date: Thu, 22 Jul 2010 23:30:36 +0000 (UTC)

 Author: mm
 Date: Thu Jul 22 23:30:24 2010
 New Revision: 210398
 URL: http://svn.freebsd.org/changeset/base/210398
 
 Log:
   Enable fake resolving of SMB RIDs by using nulldomain and UID_NOBODY
   - fixes panics when Solaris/OpenSolaris pools that contain files
   uploaded with the SMB protocol are accessed
   
   Enable seting/unsetting the sharesmb property (dummy action)
   - allows users who import pools from Solaris/Opensolaris to unset
   the sharesmb property and get rid of annoying messages
   
   PR:		kern/145778, kern/148709
   Approved by:	pjd, delphij (mentor)
   MFC after:	7 weeks
 
 Modified:
   head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c
 
 Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
 ==============================================================================
 --- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c	Thu Jul 22 23:23:39 2010	(r210397)
 +++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c	Thu Jul 22 23:30:24 2010	(r210398)
 @@ -1265,7 +1265,6 @@ zfs_prop_set(zfs_handle_t *zhp, const ch
  	case ZFS_PROP_XATTR:
  	case ZFS_PROP_VSCAN:
  	case ZFS_PROP_NBMAND:
 -	case ZFS_PROP_SHARESMB:
  		(void) snprintf(errbuf, sizeof (errbuf),
  		    "property '%s' not supported on FreeBSD", propname);
  		ret = zfs_error(hdl, EZFS_PERM, errbuf);
 
 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c
 ==============================================================================
 --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c	Thu Jul 22 23:23:39 2010	(r210397)
 +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c	Thu Jul 22 23:30:24 2010	(r210398)
 @@ -410,7 +410,7 @@ zfs_fuid_map_id(zfsvfs_t *zfsvfs, uint64
  	domain = zfs_fuid_find_by_idx(zfsvfs, index);
  	ASSERT(domain != NULL);
  
 -#ifdef TODO
 +#ifdef sun
  	if (type == ZFS_OWNER || type == ZFS_ACE_USER) {
  		(void) kidmap_getuidbysid(crgetzone(cr), domain,
  		    FUID_RID(fuid), &id);
 @@ -418,9 +418,9 @@ zfs_fuid_map_id(zfsvfs_t *zfsvfs, uint64
  		(void) kidmap_getgidbysid(crgetzone(cr), domain,
  		    FUID_RID(fuid), &id);
  	}
 -#else
 -	panic(__func__);
 -#endif
 +#else	/* sun */
 +	id = UID_NOBODY;
 +#endif	/* sun */
  	return (id);
  }
  
 @@ -514,21 +514,21 @@ zfs_fuid_create_cred(zfsvfs_t *zfsvfs, z
  	if (!zfsvfs->z_use_fuids || !IS_EPHEMERAL(id))
  		return ((uint64_t)id);
  
 -#ifdef TODO
 +#ifdef sun
  	ksid = crgetsid(cr, (type == ZFS_OWNER) ? KSID_OWNER : KSID_GROUP);
  
  	VERIFY(ksid != NULL);
  	rid = ksid_getrid(ksid);
  	domain = ksid_getdomain(ksid);
 -
 +#else	/* sun */
 +	rid = UID_NOBODY;
 +	domain = nulldomain;
 +#endif	/* sun */
  	idx = zfs_fuid_find_by_domain(zfsvfs, domain, &kdomain, B_TRUE);
  
  	zfs_fuid_node_add(fuidp, kdomain, rid, idx, id, type);
  
  	return (FUID_ENCODE(idx, rid));
 -#else
 -	panic(__func__);
 -#endif
  }
  
  /*
 @@ -597,7 +597,7 @@ zfs_fuid_create(zfsvfs_t *zfsvfs, uint64
  		};
  		domain = fuidp->z_domain_table[idx -1];
  	} else {
 -#ifdef TODO
 +#ifdef sun
  		if (type == ZFS_OWNER || type == ZFS_ACE_USER)
  			status = kidmap_getsidbyuid(crgetzone(cr), id,
  			    &domain, &rid);
 @@ -606,6 +606,7 @@ zfs_fuid_create(zfsvfs_t *zfsvfs, uint64
  			    &domain, &rid);
  
  		if (status != 0) {
 +#endif	/* sun */
  			/*
  			 * When returning nobody we will need to
  			 * make a dummy fuid table entry for logging
 @@ -613,10 +614,9 @@ zfs_fuid_create(zfsvfs_t *zfsvfs, uint64
  			 */
  			rid = UID_NOBODY;
  			domain = nulldomain;
 +#ifdef sun
  		}
 -#else
 -		panic(__func__);
 -#endif
 +#endif	/* sun */
  	}
  
  	idx = zfs_fuid_find_by_domain(zfsvfs, domain, &kdomain, B_TRUE);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007222340.o6MNe7Y2073114>