svn commit: r195822 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Edward Tomasz Napierala trasz at FreeBSD.org
Wed Jul 22 15:15:59 UTC 2009


Author: trasz
Date: Wed Jul 22 15:15:58 2009
New Revision: 195822
URL: http://svn.freebsd.org/changeset/base/195822

Log:
  Fix extattr_list_file(2) on ZFS in case the attribute directory
  doesn't exist and user doesn't have write access to the file.
  Without this fix, it returns bogus value instead of 0.  For some
  reason this didn't manifest on my kernel compiled with -O0.
  
  PR:		kern/136601
  Submitted by:	Jaakko Heinonen <jh at saunalahti dot fi>
  Approved by:	re (kib)

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Wed Jul 22 14:37:53 2009	(r195821)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Wed Jul 22 15:15:58 2009	(r195822)
@@ -4722,6 +4722,9 @@ vop_listextattr {
 
 	ZFS_ENTER(zfsvfs);
 
+	if (sizep != NULL)
+		*sizep = 0;
+
 	error = zfs_lookup(ap->a_vp, NULL, &xvp, NULL, 0, ap->a_cred, td,
 	    LOOKUP_XATTR);
 	if (error != 0) {
@@ -4752,9 +4755,6 @@ vop_listextattr {
 	auio.uio_rw = UIO_READ;
 	auio.uio_offset = 0;
 
-	if (sizep != NULL)
-		*sizep = 0;
-
 	do {
 		u_char nlen;
 


More information about the svn-src-head mailing list