From nobody@FreeBSD.org  Mon May  3 21:27:18 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id E1B191065670
	for <freebsd-gnats-submit@FreeBSD.org>; Mon,  3 May 2010 21:27:18 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [69.147.83.33])
	by mx1.freebsd.org (Postfix) with ESMTP id D15D18FC26
	for <freebsd-gnats-submit@FreeBSD.org>; Mon,  3 May 2010 21:27:18 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o43LRIo2086520
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 3 May 2010 21:27:18 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o43LRIop086519;
	Mon, 3 May 2010 21:27:18 GMT
	(envelope-from nobody)
Message-Id: <201005032127.o43LRIop086519@www.freebsd.org>
Date: Mon, 3 May 2010 21:27:18 GMT
From: Michael Moll <kvedulv@kvedulv.de>
To: freebsd-gnats-submit@FreeBSD.org
Subject: ZFS byteswapping works fine, but panics with TODO
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         146272
>Category:       kern
>Synopsis:       ZFS byteswapping works fine, but panics with TODO
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    marius
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 03 21:30:01 UTC 2010
>Closed-Date:    Mon May 10 21:03:18 UTC 2010
>Last-Modified:  Mon May 10 21:03:18 UTC 2010
>Originator:     Michael Moll
>Release:        9.0-CURRENT / 8.0-STABLE
>Organization:
>Environment:
FreeBSD emperor.kvedulv.de 8.0-STABLE FreeBSD 8.0-STABLE #0: Mon May  3 21:11:19 CEST 2010     mmoll@emperor.kvedulv.de:/usr/obj/usr/src/sys/EMPEROR  amd64
FreeBSD fujisan.kvedulv.de 9.0-CURRENT FreeBSD 9.0-CURRENT #0: Mon May  3 12:32:02 UTC 2010    root@fujisan.kvedulv.de:/usr/obj/usr/src/sys/GENERIC sparc64
>Description:
When trying to do a zfs send/receive from FreeBSD/amd64 to FreBSD/sparc64 the receiving box paniced with "zfs_ace_byteswap:112: TODO"

I recompiled kernels without the TODO-#ifdef, tried several send/receives in both directions and everything seems to be fine. Maybe this code can be enabled also on FreeBSD?
>How-To-Repeat:
Do a zfs send/receive from a BE to a LE box or vice versa.
>Fix:
Comment out the TODO-#ifdef in /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->marius 
Responsible-Changed-By: marius 
Responsible-Changed-When: Tue May 4 16:46:05 UTC 2010 
Responsible-Changed-Why:  
grab 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146272 

From: Michael Moll <kvedulv@kvedulv.de>
To: Marius Strobl <marius@alchemy.franken.de>
Cc: bug-followup@FreeBSD.org
Subject: Re: kern/146272: ZFS byteswapping works fine, but panics with TODO
Date: Tue, 4 May 2010 22:06:55 +0200

 --qDbXVdCdHGoSgWSk
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 > Kannst Du bei Gelegenheit bitte den Patch im Anhang testen? Der
 > importiert einen Fix aus OpenSolaris, welcher wohl wuenschenswert
 > ist wenn man die Funktion aktiviert.
 > http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6764193
 
 I can confirm that the attached patch fixes the problem and everything
 is working fine. Tested zfs send/receive in both directions and zpool
 import of a pool that was created on the other (as appropriate) platform.
 
 --qDbXVdCdHGoSgWSk
 Content-Type: text/x-diff; charset=us-ascii
 Content-Disposition: attachment; filename="zfs_byteswap.c.diff"
 
 Index: zfs_byteswap.c
 ===================================================================
 --- zfs_byteswap.c	(revision 207463)
 +++ zfs_byteswap.c	(working copy)
 @@ -19,12 +19,10 @@
   * CDDL HEADER END
   */
  /*
 - * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 + * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
   */
  
 -#pragma ident	"%Z%%M%	%I%	%E% SMI"
 -
  #include <sys/zfs_context.h>
  #include <sys/vfs.h>
  #include <sys/fs/zfs.h>
 @@ -50,7 +48,6 @@ zfs_oldace_byteswap(ace_t *ace, int ace_cnt)
  void
  zfs_ace_byteswap(void *buf, size_t size, boolean_t zfs_layout)
  {
 -#ifdef TODO
  	caddr_t end;
  	caddr_t ptr;
  	zfs_ace_t *zacep;
 @@ -64,6 +61,20 @@ zfs_ace_byteswap(void *buf, size_t size, boolean_t
  
  	while (ptr < end) {
  		if (zfs_layout) {
 +			/*
 +			 * Avoid overrun.  Embedded aces can have one
 +			 * of several sizes.  We don't know exactly
 +			 * how many our present, only the size of the
 +			 * buffer containing them.  That size may be
 +			 * larger than needed to hold the aces
 +			 * present.  As long as we do not do any
 +			 * swapping beyond the end of our block we are
 +			 * okay.  It it safe to swap any non-ace data
 +			 * within the block since it is just zeros.
 +			 */
 +			if (ptr + sizeof (zfs_ace_hdr_t) > end) {
 +				break;
 +			}
  			zacep = (zfs_ace_t *)ptr;
  			zacep->z_hdr.z_access_mask =
  			    BSWAP_32(zacep->z_hdr.z_access_mask);
 @@ -72,6 +83,10 @@ zfs_ace_byteswap(void *buf, size_t size, boolean_t
  			    BSWAP_16(zacep->z_hdr.z_type);
  			entry_type = zacep->z_hdr.z_flags & ACE_TYPE_FLAGS;
  		} else {
 +			/* Overrun avoidance */
 +			if (ptr + sizeof (ace_t) > end) {
 +				break;
 +			}
  			acep = (ace_t *)ptr;
  			acep->a_access_mask = BSWAP_32(acep->a_access_mask);
  			acep->a_flags = BSWAP_16(acep->a_flags);
 @@ -88,8 +103,14 @@ zfs_ace_byteswap(void *buf, size_t size, boolean_t
  			break;
  		case ACE_IDENTIFIER_GROUP:
  		default:
 +			/* Overrun avoidance */
  			if (zfs_layout) {
 -				zacep->z_fuid = BSWAP_64(zacep->z_fuid);
 +				if (ptr + sizeof (zfs_ace_t) <= end) {
 +					zacep->z_fuid = BSWAP_64(zacep->z_fuid);
 +				} else {
 +					entry_size = sizeof (zfs_ace_t);
 +					break;
 +				}
  			}
  			switch (ace_type) {
  			case ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE:
 @@ -108,9 +129,6 @@ zfs_ace_byteswap(void *buf, size_t size, boolean_t
  		}
  		ptr = ptr + entry_size;
  	}
 -#else	/* TODO */
 -	panic("%s:%u: TODO", __func__, __LINE__);
 -#endif	/* TODO */
  }
  
  /* ARGSUSED */
 @@ -173,7 +191,8 @@ zfs_znode_byteswap(void *buf, size_t size)
  	if (zp->zp_acl.z_acl_version == ZFS_ACL_VERSION) {
  		zfs_acl_byteswap((void *)&zp->zp_acl.z_ace_data[0],
  		    ZFS_ACE_SPACE);
 -	} else
 +	} else {
  		zfs_oldace_byteswap((ace_t *)&zp->zp_acl.z_ace_data[0],
  		    ACE_SLOT_CNT);
 +	}
  }
 
 --qDbXVdCdHGoSgWSk--

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/146272: commit references a PR
Date: Wed,  5 May 2010 22:15:29 +0000 (UTC)

 Author: marius
 Date: Wed May  5 22:15:20 2010
 New Revision: 207683
 URL: http://svn.freebsd.org/changeset/base/207683
 
 Log:
   - Fix broken symlinks on cross platform zfs send/recv. [1]
   - Enable zfs_ace_byteswap() on FreeBSD as it works just fine (tested between
     amd64 and sparc64 in both directions by Michael Moll).
   
   PR:		146272
   Approved by:	mm, pjd
   Obtained from:	OpenSolaris (onnv rev. 8283:1ca59f393041; Bug ID 6764193) [1]
   MFC after:	3 days
 
 Modified:
   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
 
 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
 ==============================================================================
 --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c	Wed May  5 22:12:56 2010	(r207682)
 +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c	Wed May  5 22:15:20 2010	(r207683)
 @@ -19,12 +19,10 @@
   * CDDL HEADER END
   */
  /*
 - * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 + * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
   */
  
 -#pragma ident	"%Z%%M%	%I%	%E% SMI"
 -
  #include <sys/zfs_context.h>
  #include <sys/vfs.h>
  #include <sys/fs/zfs.h>
 @@ -50,7 +48,6 @@ zfs_oldace_byteswap(ace_t *ace, int ace_
  void
  zfs_ace_byteswap(void *buf, size_t size, boolean_t zfs_layout)
  {
 -#ifdef TODO
  	caddr_t end;
  	caddr_t ptr;
  	zfs_ace_t *zacep;
 @@ -64,6 +61,20 @@ zfs_ace_byteswap(void *buf, size_t size,
  
  	while (ptr < end) {
  		if (zfs_layout) {
 +			/*
 +			 * Avoid overrun.  Embedded aces can have one
 +			 * of several sizes.  We don't know exactly
 +			 * how many our present, only the size of the
 +			 * buffer containing them.  That size may be
 +			 * larger than needed to hold the aces
 +			 * present.  As long as we do not do any
 +			 * swapping beyond the end of our block we are
 +			 * okay.  It it safe to swap any non-ace data
 +			 * within the block since it is just zeros.
 +			 */
 +			if (ptr + sizeof (zfs_ace_hdr_t) > end) {
 +				break;
 +			}
  			zacep = (zfs_ace_t *)ptr;
  			zacep->z_hdr.z_access_mask =
  			    BSWAP_32(zacep->z_hdr.z_access_mask);
 @@ -72,6 +83,10 @@ zfs_ace_byteswap(void *buf, size_t size,
  			    BSWAP_16(zacep->z_hdr.z_type);
  			entry_type = zacep->z_hdr.z_flags & ACE_TYPE_FLAGS;
  		} else {
 +			/* Overrun avoidance */
 +			if (ptr + sizeof (ace_t) > end) {
 +				break;
 +			}
  			acep = (ace_t *)ptr;
  			acep->a_access_mask = BSWAP_32(acep->a_access_mask);
  			acep->a_flags = BSWAP_16(acep->a_flags);
 @@ -88,8 +103,14 @@ zfs_ace_byteswap(void *buf, size_t size,
  			break;
  		case ACE_IDENTIFIER_GROUP:
  		default:
 +			/* Overrun avoidance */
  			if (zfs_layout) {
 -				zacep->z_fuid = BSWAP_64(zacep->z_fuid);
 +				if (ptr + sizeof (zfs_ace_t) <= end) {
 +					zacep->z_fuid = BSWAP_64(zacep->z_fuid);
 +				} else {
 +					entry_size = sizeof (zfs_ace_t);
 +					break;
 +				}
  			}
  			switch (ace_type) {
  			case ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE:
 @@ -108,9 +129,6 @@ zfs_ace_byteswap(void *buf, size_t size,
  		}
  		ptr = ptr + entry_size;
  	}
 -#else	/* TODO */
 -	panic("%s:%u: TODO", __func__, __LINE__);
 -#endif	/* TODO */
  }
  
  /* ARGSUSED */
 @@ -173,7 +191,8 @@ zfs_znode_byteswap(void *buf, size_t siz
  	if (zp->zp_acl.z_acl_version == ZFS_ACL_VERSION) {
  		zfs_acl_byteswap((void *)&zp->zp_acl.z_ace_data[0],
  		    ZFS_ACE_SPACE);
 -	} else
 +	} else {
  		zfs_oldace_byteswap((ace_t *)&zp->zp_acl.z_ace_data[0],
  		    ACE_SLOT_CNT);
 +	}
  }
 _______________________________________________
 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"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/146272: commit references a PR
Date: Mon, 10 May 2010 20:55:34 +0000 (UTC)

 Author: marius
 Date: Mon May 10 20:55:24 2010
 New Revision: 207894
 URL: http://svn.freebsd.org/changeset/base/207894
 
 Log:
   MFC: r207683
   
   - Fix broken symlinks on cross platform zfs send/recv. [1]
   - Enable zfs_ace_byteswap() on FreeBSD as it works just fine (tested between
     amd64 and sparc64 in both directions by Michael Moll).
   
   PR:		146272
   Approved by:	mm, pjd
   Obtained from:	OpenSolaris (onnv rev. 8283:1ca59f393041; Bug ID 6764193) [1]
 
 Modified:
   stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
 Directory Properties:
   stable/8/sys/   (props changed)
   stable/8/sys/amd64/include/xen/   (props changed)
   stable/8/sys/cddl/contrib/opensolaris/   (props changed)
   stable/8/sys/contrib/dev/acpica/   (props changed)
   stable/8/sys/contrib/pf/   (props changed)
   stable/8/sys/dev/xen/xenpci/   (props changed)
   stable/8/sys/geom/sched/   (props changed)
 
 Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
 ==============================================================================
 --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c	Mon May 10 20:34:19 2010	(r207893)
 +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c	Mon May 10 20:55:24 2010	(r207894)
 @@ -19,12 +19,10 @@
   * CDDL HEADER END
   */
  /*
 - * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 + * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
   */
  
 -#pragma ident	"%Z%%M%	%I%	%E% SMI"
 -
  #include <sys/zfs_context.h>
  #include <sys/vfs.h>
  #include <sys/fs/zfs.h>
 @@ -50,7 +48,6 @@ zfs_oldace_byteswap(ace_t *ace, int ace_
  void
  zfs_ace_byteswap(void *buf, size_t size, boolean_t zfs_layout)
  {
 -#ifdef TODO
  	caddr_t end;
  	caddr_t ptr;
  	zfs_ace_t *zacep;
 @@ -64,6 +61,20 @@ zfs_ace_byteswap(void *buf, size_t size,
  
  	while (ptr < end) {
  		if (zfs_layout) {
 +			/*
 +			 * Avoid overrun.  Embedded aces can have one
 +			 * of several sizes.  We don't know exactly
 +			 * how many our present, only the size of the
 +			 * buffer containing them.  That size may be
 +			 * larger than needed to hold the aces
 +			 * present.  As long as we do not do any
 +			 * swapping beyond the end of our block we are
 +			 * okay.  It it safe to swap any non-ace data
 +			 * within the block since it is just zeros.
 +			 */
 +			if (ptr + sizeof (zfs_ace_hdr_t) > end) {
 +				break;
 +			}
  			zacep = (zfs_ace_t *)ptr;
  			zacep->z_hdr.z_access_mask =
  			    BSWAP_32(zacep->z_hdr.z_access_mask);
 @@ -72,6 +83,10 @@ zfs_ace_byteswap(void *buf, size_t size,
  			    BSWAP_16(zacep->z_hdr.z_type);
  			entry_type = zacep->z_hdr.z_flags & ACE_TYPE_FLAGS;
  		} else {
 +			/* Overrun avoidance */
 +			if (ptr + sizeof (ace_t) > end) {
 +				break;
 +			}
  			acep = (ace_t *)ptr;
  			acep->a_access_mask = BSWAP_32(acep->a_access_mask);
  			acep->a_flags = BSWAP_16(acep->a_flags);
 @@ -88,8 +103,14 @@ zfs_ace_byteswap(void *buf, size_t size,
  			break;
  		case ACE_IDENTIFIER_GROUP:
  		default:
 +			/* Overrun avoidance */
  			if (zfs_layout) {
 -				zacep->z_fuid = BSWAP_64(zacep->z_fuid);
 +				if (ptr + sizeof (zfs_ace_t) <= end) {
 +					zacep->z_fuid = BSWAP_64(zacep->z_fuid);
 +				} else {
 +					entry_size = sizeof (zfs_ace_t);
 +					break;
 +				}
  			}
  			switch (ace_type) {
  			case ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE:
 @@ -108,9 +129,6 @@ zfs_ace_byteswap(void *buf, size_t size,
  		}
  		ptr = ptr + entry_size;
  	}
 -#else	/* TODO */
 -	panic("%s:%u: TODO", __func__, __LINE__);
 -#endif	/* TODO */
  }
  
  /* ARGSUSED */
 @@ -173,7 +191,8 @@ zfs_znode_byteswap(void *buf, size_t siz
  	if (zp->zp_acl.z_acl_version == ZFS_ACL_VERSION) {
  		zfs_acl_byteswap((void *)&zp->zp_acl.z_ace_data[0],
  		    ZFS_ACE_SPACE);
 -	} else
 +	} else {
  		zfs_oldace_byteswap((ace_t *)&zp->zp_acl.z_ace_data[0],
  		    ACE_SLOT_CNT);
 +	}
  }
 _______________________________________________
 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"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/146272: commit references a PR
Date: Mon, 10 May 2010 20:55:54 +0000 (UTC)

 Author: marius
 Date: Mon May 10 20:55:24 2010
 New Revision: 207895
 URL: http://svn.freebsd.org/changeset/base/207895
 
 Log:
   MFC: r207683
   
   - Fix broken symlinks on cross platform zfs send/recv. [1]
   - Enable zfs_ace_byteswap() on FreeBSD as it works just fine (tested between
     amd64 and sparc64 in both directions by Michael Moll).
   
   PR:		146272
   Approved by:	mm, pjd
   Obtained from:	OpenSolaris (onnv rev. 8283:1ca59f393041; Bug ID 6764193) [1]
 
 Modified:
   stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
 Directory Properties:
   stable/7/sys/   (props changed)
   stable/7/sys/cddl/contrib/opensolaris/   (props changed)
   stable/7/sys/contrib/dev/acpica/   (props changed)
   stable/7/sys/contrib/pf/   (props changed)
 
 Modified: stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
 ==============================================================================
 --- stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c	Mon May 10 20:55:24 2010	(r207894)
 +++ stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c	Mon May 10 20:55:24 2010	(r207895)
 @@ -19,12 +19,10 @@
   * CDDL HEADER END
   */
  /*
 - * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 + * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
   */
  
 -#pragma ident	"%Z%%M%	%I%	%E% SMI"
 -
  #include <sys/zfs_context.h>
  #include <sys/vfs.h>
  #include <sys/fs/zfs.h>
 @@ -50,7 +48,6 @@ zfs_oldace_byteswap(ace_t *ace, int ace_
  void
  zfs_ace_byteswap(void *buf, size_t size, boolean_t zfs_layout)
  {
 -#ifdef TODO
  	caddr_t end;
  	caddr_t ptr;
  	zfs_ace_t *zacep;
 @@ -64,6 +61,20 @@ zfs_ace_byteswap(void *buf, size_t size,
  
  	while (ptr < end) {
  		if (zfs_layout) {
 +			/*
 +			 * Avoid overrun.  Embedded aces can have one
 +			 * of several sizes.  We don't know exactly
 +			 * how many our present, only the size of the
 +			 * buffer containing them.  That size may be
 +			 * larger than needed to hold the aces
 +			 * present.  As long as we do not do any
 +			 * swapping beyond the end of our block we are
 +			 * okay.  It it safe to swap any non-ace data
 +			 * within the block since it is just zeros.
 +			 */
 +			if (ptr + sizeof (zfs_ace_hdr_t) > end) {
 +				break;
 +			}
  			zacep = (zfs_ace_t *)ptr;
  			zacep->z_hdr.z_access_mask =
  			    BSWAP_32(zacep->z_hdr.z_access_mask);
 @@ -72,6 +83,10 @@ zfs_ace_byteswap(void *buf, size_t size,
  			    BSWAP_16(zacep->z_hdr.z_type);
  			entry_type = zacep->z_hdr.z_flags & ACE_TYPE_FLAGS;
  		} else {
 +			/* Overrun avoidance */
 +			if (ptr + sizeof (ace_t) > end) {
 +				break;
 +			}
  			acep = (ace_t *)ptr;
  			acep->a_access_mask = BSWAP_32(acep->a_access_mask);
  			acep->a_flags = BSWAP_16(acep->a_flags);
 @@ -88,8 +103,14 @@ zfs_ace_byteswap(void *buf, size_t size,
  			break;
  		case ACE_IDENTIFIER_GROUP:
  		default:
 +			/* Overrun avoidance */
  			if (zfs_layout) {
 -				zacep->z_fuid = BSWAP_64(zacep->z_fuid);
 +				if (ptr + sizeof (zfs_ace_t) <= end) {
 +					zacep->z_fuid = BSWAP_64(zacep->z_fuid);
 +				} else {
 +					entry_size = sizeof (zfs_ace_t);
 +					break;
 +				}
  			}
  			switch (ace_type) {
  			case ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE:
 @@ -108,9 +129,6 @@ zfs_ace_byteswap(void *buf, size_t size,
  		}
  		ptr = ptr + entry_size;
  	}
 -#else	/* TODO */
 -	panic("%s:%u: TODO", __func__, __LINE__);
 -#endif	/* TODO */
  }
  
  /* ARGSUSED */
 @@ -173,7 +191,8 @@ zfs_znode_byteswap(void *buf, size_t siz
  	if (zp->zp_acl.z_acl_version == ZFS_ACL_VERSION) {
  		zfs_acl_byteswap((void *)&zp->zp_acl.z_ace_data[0],
  		    ZFS_ACE_SPACE);
 -	} else
 +	} else {
  		zfs_oldace_byteswap((ace_t *)&zp->zp_acl.z_ace_data[0],
  		    ACE_SLOT_CNT);
 +	}
  }
 _______________________________________________
 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"
 
State-Changed-From-To: open->closed 
State-Changed-By: marius 
State-Changed-When: Mon May 10 21:02:53 UTC 2010 
State-Changed-Why:  
close 

http://www.freebsd.org/cgi/query-pr.cgi?pr=146272 
>Unformatted:
