From mm@mail.vx.sk  Tue May  4 10:42:58 2010
Return-Path: <mm@mail.vx.sk>
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 3CDE81065674;
	Tue,  4 May 2010 10:42:53 +0000 (UTC)
	(envelope-from mm@mail.vx.sk)
Received: from mail.vx.sk (core.vx.sk [188.40.32.143])
	by mx1.freebsd.org (Postfix) with ESMTP id AFA188FC0A;
	Tue,  4 May 2010 10:42:52 +0000 (UTC)
Received: from core.vx.sk (localhost [127.0.0.1])
	by mail.vx.sk (Postfix) with ESMTP id 00B588F58A;
	Tue,  4 May 2010 12:42:52 +0200 (CEST)
Received: from mail.vx.sk ([127.0.0.1])
	by core.vx.sk (mail.vx.sk [127.0.0.1]) (amavisd-new, port 10024)
	with LMTP id N9OMv5mbucsG; Tue,  4 May 2010 12:42:50 +0200 (CEST)
Received: by mail.vx.sk (Postfix, from userid 1001)
	id 02B0C8F57B; Tue,  4 May 2010 12:42:50 +0200 (CEST)
Message-Id: <20100504104250.02B0C8F57B@mail.vx.sk>
Date: Tue,  4 May 2010 12:42:50 +0200 (CEST)
From: Martin Matuska <mm@FreeBSD.org>
Reply-To: Martin Matuska <mm@FreeBSD.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc: pjd@FreeBSD.org
Subject: [zfs] [patch] zfs list improvements (onnv 8415, 10474)
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         146297
>Category:       kern
>Synopsis:       [zfs] [patch] zfs list improvements (onnv 8415, 10474)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    mm
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 04 10:50:02 UTC 2010
>Closed-Date:    Tue May 18 07:56:45 UTC 2010
>Last-Modified:  Tue May 18 07:56:45 UTC 2010
>Originator:     Martin Matuska
>Release:        FreeBSD 8.0-STABLE amd64
>Organization:
>Environment:
>Description:
Improve zfs list operation by importing the following changes from OpenSolaris:

Import full onnv revision: 8415:d5525cd1cbc2
    Bug IDs:
	6386929 initial "zfs list" is slow
	6755389 Initial run of any zfs command that iterates over datasets can be slow
	6758338 zfs list should list all explicitly requested snapshots

Backport partial onnv revision: 10474:0e96dd3b905a
    Bug IDs:
	6847118 hang in ZFS during rollback

>How-To-Repeat:
>Fix:
Index: cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
===================================================================
--- cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	(revision 207610)
+++ cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	(working copy)
@@ -1790,7 +1790,7 @@
 	boolean_t scripted = B_FALSE;
 	static char default_fields[] =
 	    "name,used,available,referenced,mountpoint";
-	int types = ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME;
+	int types = ZFS_TYPE_DATASET;
 	boolean_t types_specified = B_FALSE;
 	char *fields = NULL;
 	list_cbdata_t cb = { 0 };
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	(revision 207610)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	(working copy)
@@ -1213,6 +1213,39 @@
 	return (err);
 }
 
+/* ARGSUSED */
+int
+dmu_objset_prefetch(char *name, void *arg)
+{
+	dsl_dataset_t *ds;
+
+	if (dsl_dataset_hold(name, FTAG, &ds))
+		return (0);
+
+	if (!BP_IS_HOLE(&ds->ds_phys->ds_bp)) {
+		mutex_enter(&ds->ds_opening_lock);
+		if (!dsl_dataset_get_user_ptr(ds)) {
+			uint32_t aflags = ARC_NOWAIT | ARC_PREFETCH;
+			zbookmark_t zb;
+
+			zb.zb_objset = ds->ds_object;
+			zb.zb_object = 0;
+			zb.zb_level = -1;
+			zb.zb_blkid = 0;
+
+			(void) arc_read_nolock(NULL, dsl_dataset_get_spa(ds),
+			    &ds->ds_phys->ds_bp, NULL, NULL,
+			    ZIO_PRIORITY_ASYNC_READ,
+			    ZIO_FLAG_CANFAIL | ZIO_FLAG_SPECULATIVE,
+			    &aflags, &zb);
+		}
+		mutex_exit(&ds->ds_opening_lock);
+	}
+
+	dsl_dataset_rele(ds, FTAG);
+	return (0);
+}
+
 void
 dmu_objset_set_user(objset_t *os, void *user_ptr)
 {
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	(revision 207610)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	(working copy)
@@ -1349,6 +1349,14 @@
 		(void) strlcat(zc->zc_name, "/", sizeof (zc->zc_name));
 	p = zc->zc_name + strlen(zc->zc_name);
 
+	if (zc->zc_cookie == 0) {
+		uint64_t cookie = 0;
+		int len = sizeof (zc->zc_name) - (p - zc->zc_name);
+
+		while (dmu_dir_list_next(os, len, p, NULL, &cookie) == 0)
+			dmu_objset_prefetch(p, NULL);
+	}
+
 	do {
 		error = dmu_dir_list_next(os,
 		    sizeof (zc->zc_name) - (p - zc->zc_name), p,
@@ -1387,6 +1395,9 @@
 	objset_t *os;
 	int error;
 
+	if (zc->zc_cookie == 0)
+		dmu_objset_find(zc->zc_name, dmu_objset_prefetch,
+		    NULL, DS_FIND_SNAPSHOTS);
 	error = dmu_objset_open(zc->zc_name,
 	    DMU_OST_ANY, DS_MODE_USER | DS_MODE_READONLY, &os);
 	if (error)
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	(revision 207610)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	(working copy)
@@ -26,8 +26,6 @@
 #ifndef	_SYS_DMU_OBJSET_H
 #define	_SYS_DMU_OBJSET_H
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <sys/spa.h>
 #include <sys/arc.h>
 #include <sys/txg.h>
@@ -118,6 +116,7 @@
     int flags);
 int dmu_objset_find_spa(spa_t *spa, const char *name,
     int func(spa_t *, uint64_t, const char *, void *), void *arg, int flags);
+int dmu_objset_prefetch(char *name, void *arg);
 void dmu_objset_byteswap(void *buf, size_t size);
 int dmu_objset_evict_dbufs(objset_t *os);
 
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-fs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Tue May 4 15:58:57 UTC 2010 
Responsible-Changed-Why:  
Over to maintainer(s). 

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

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/146297: commit references a PR
Date: Tue,  4 May 2010 17:40:33 +0000 (UTC)

 Author: mm
 Date: Tue May  4 17:40:24 2010
 New Revision: 207626
 URL: http://svn.freebsd.org/changeset/base/207626
 
 Log:
   Speed up ZFS list operation with objset prefetching.
   
   Partial import of OpenSolaris onnv revisions:
   8415:8809e849f63e, 10474:0e96dd3b905a
   
   PR:		kern/146297
   Submitted by:	myself
   Approved by:	pjd, delphij (mentor)
   Obtained from:	OpenSolaris (Bug ID 6386929, 6755389, 6847118)
   MFC after:	2 weeks
 
 Modified:
   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
 
 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
 ==============================================================================
 --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Tue May  4 17:34:00 2010	(r207625)
 +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Tue May  4 17:40:24 2010	(r207626)
 @@ -1213,6 +1213,39 @@ dmu_objset_find_spa(spa_t *spa, const ch
  	return (err);
  }
  
 +/* ARGSUSED */
 +int
 +dmu_objset_prefetch(char *name, void *arg)
 +{
 +	dsl_dataset_t *ds;
 +
 +	if (dsl_dataset_hold(name, FTAG, &ds))
 +		return (0);
 +
 +	if (!BP_IS_HOLE(&ds->ds_phys->ds_bp)) {
 +		mutex_enter(&ds->ds_opening_lock);
 +		if (!dsl_dataset_get_user_ptr(ds)) {
 +			uint32_t aflags = ARC_NOWAIT | ARC_PREFETCH;
 +			zbookmark_t zb;
 +
 +			zb.zb_objset = ds->ds_object;
 +			zb.zb_object = 0;
 +			zb.zb_level = -1;
 +			zb.zb_blkid = 0;
 +
 +			(void) arc_read_nolock(NULL, dsl_dataset_get_spa(ds),
 +			    &ds->ds_phys->ds_bp, NULL, NULL,
 +			    ZIO_PRIORITY_ASYNC_READ,
 +			    ZIO_FLAG_CANFAIL | ZIO_FLAG_SPECULATIVE,
 +			    &aflags, &zb);
 +		}
 +		mutex_exit(&ds->ds_opening_lock);
 +	}
 +
 +	dsl_dataset_rele(ds, FTAG);
 +	return (0);
 +}
 +
  void
  dmu_objset_set_user(objset_t *os, void *user_ptr)
  {
 
 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
 ==============================================================================
 --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	Tue May  4 17:34:00 2010	(r207625)
 +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	Tue May  4 17:40:24 2010	(r207626)
 @@ -26,8 +26,6 @@
  #ifndef	_SYS_DMU_OBJSET_H
  #define	_SYS_DMU_OBJSET_H
  
 -#pragma ident	"%Z%%M%	%I%	%E% SMI"
 -
  #include <sys/spa.h>
  #include <sys/arc.h>
  #include <sys/txg.h>
 @@ -118,6 +116,7 @@ int dmu_objset_find(char *name, int func
      int flags);
  int dmu_objset_find_spa(spa_t *spa, const char *name,
      int func(spa_t *, uint64_t, const char *, void *), void *arg, int flags);
 +int dmu_objset_prefetch(char *name, void *arg);
  void dmu_objset_byteswap(void *buf, size_t size);
  int dmu_objset_evict_dbufs(objset_t *os);
  
 
 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
 ==============================================================================
 --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Tue May  4 17:34:00 2010	(r207625)
 +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Tue May  4 17:40:24 2010	(r207626)
 @@ -1349,6 +1349,14 @@ zfs_ioc_dataset_list_next(zfs_cmd_t *zc)
  		(void) strlcat(zc->zc_name, "/", sizeof (zc->zc_name));
  	p = zc->zc_name + strlen(zc->zc_name);
  
 +	if (zc->zc_cookie == 0) {
 +		uint64_t cookie = 0;
 +		int len = sizeof (zc->zc_name) - (p - zc->zc_name);
 +
 +		while (dmu_dir_list_next(os, len, p, NULL, &cookie) == 0)
 +			dmu_objset_prefetch(p, NULL);
 +	}
 +
  	do {
  		error = dmu_dir_list_next(os,
  		    sizeof (zc->zc_name) - (p - zc->zc_name), p,
 @@ -1387,6 +1395,9 @@ zfs_ioc_snapshot_list_next(zfs_cmd_t *zc
  	objset_t *os;
  	int error;
  
 +	if (zc->zc_cookie == 0)
 +		dmu_objset_find(zc->zc_name, dmu_objset_prefetch,
 +		    NULL, DS_FIND_SNAPSHOTS);
  	error = dmu_objset_open(zc->zc_name,
  	    DMU_OST_ANY, DS_MODE_USER | DS_MODE_READONLY, &os);
  	if (error)
 _______________________________________________
 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/146297: commit references a PR
Date: Tue,  4 May 2010 17:44:54 +0000 (UTC)

 Author: mm
 Date: Tue May  4 17:44:40 2010
 New Revision: 207627
 URL: http://svn.freebsd.org/changeset/base/207627
 
 Log:
   Enable "zfs list" to list explicitly requested snapshots.
   
   Partial import of OpenSolaris onnv revision:
   8415:8809e849f63e
   
   PR:		kern/146297
   Submitted by:	myself
   Approved by:	pjd, delphij (mentor)
   Obtained from:	OpenSolaris (Bug ID 6758338)
   MFC after:	2 weeks
 
 Modified:
   head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
 
 Modified: head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
 ==============================================================================
 --- head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Tue May  4 17:40:24 2010	(r207626)
 +++ head/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Tue May  4 17:44:40 2010	(r207627)
 @@ -1790,7 +1790,7 @@ zfs_do_list(int argc, char **argv)
  	boolean_t scripted = B_FALSE;
  	static char default_fields[] =
  	    "name,used,available,referenced,mountpoint";
 -	int types = ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME;
 +	int types = ZFS_TYPE_DATASET;
  	boolean_t types_specified = B_FALSE;
  	char *fields = NULL;
  	list_cbdata_t cb = { 0 };
 _______________________________________________
 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->patched 
State-Changed-By: mm 
State-Changed-When: Tue May 4 21:08:38 UTC 2010 
State-Changed-Why:  
Scheduled for MFC 


Responsible-Changed-From-To: freebsd-fs->mm 
Responsible-Changed-By: mm 
Responsible-Changed-When: Tue May 4 21:08:38 UTC 2010 
Responsible-Changed-Why:  


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

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/146297: commit references a PR
Date: Tue, 18 May 2010 07:45:42 +0000 (UTC)

 Author: mm
 Date: Tue May 18 07:45:27 2010
 New Revision: 208255
 URL: http://svn.freebsd.org/changeset/base/208255
 
 Log:
   MFC r207626, r207627:
   
   MFC r207626:
   Speed up ZFS list operation with objset prefetching.
   
   MFC r207627:
   Enable "zfs list" to list explicitly requested snapshots.
   
   OpenSolaris onnv revisions:
   8415:8809e849f63e, 10474:0e96dd3b905a (partial)
   
   PR:		kern/146297
   Approved by:	pjd, delphij (mentor)
   Obtained from:	OpenSolaris (Bug ID 6386929, 6758338, 6755389, 6847118)
 
 Modified:
   stable/8/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
   stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
   stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
   stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
 Directory Properties:
   stable/8/cddl/contrib/opensolaris/   (props changed)
   stable/8/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
   stable/8/cddl/contrib/opensolaris/cmd/zfs/   (props changed)
   stable/8/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
   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/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
 ==============================================================================
 --- stable/8/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Tue May 18 05:18:21 2010	(r208254)
 +++ stable/8/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c	Tue May 18 07:45:27 2010	(r208255)
 @@ -1790,7 +1790,7 @@ zfs_do_list(int argc, char **argv)
  	boolean_t scripted = B_FALSE;
  	static char default_fields[] =
  	    "name,used,available,referenced,mountpoint";
 -	int types = ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME;
 +	int types = ZFS_TYPE_DATASET;
  	boolean_t types_specified = B_FALSE;
  	char *fields = NULL;
  	list_cbdata_t cb = { 0 };
 
 Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
 ==============================================================================
 --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Tue May 18 05:18:21 2010	(r208254)
 +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Tue May 18 07:45:27 2010	(r208255)
 @@ -1213,6 +1213,39 @@ dmu_objset_find_spa(spa_t *spa, const ch
  	return (err);
  }
  
 +/* ARGSUSED */
 +int
 +dmu_objset_prefetch(char *name, void *arg)
 +{
 +	dsl_dataset_t *ds;
 +
 +	if (dsl_dataset_hold(name, FTAG, &ds))
 +		return (0);
 +
 +	if (!BP_IS_HOLE(&ds->ds_phys->ds_bp)) {
 +		mutex_enter(&ds->ds_opening_lock);
 +		if (!dsl_dataset_get_user_ptr(ds)) {
 +			uint32_t aflags = ARC_NOWAIT | ARC_PREFETCH;
 +			zbookmark_t zb;
 +
 +			zb.zb_objset = ds->ds_object;
 +			zb.zb_object = 0;
 +			zb.zb_level = -1;
 +			zb.zb_blkid = 0;
 +
 +			(void) arc_read_nolock(NULL, dsl_dataset_get_spa(ds),
 +			    &ds->ds_phys->ds_bp, NULL, NULL,
 +			    ZIO_PRIORITY_ASYNC_READ,
 +			    ZIO_FLAG_CANFAIL | ZIO_FLAG_SPECULATIVE,
 +			    &aflags, &zb);
 +		}
 +		mutex_exit(&ds->ds_opening_lock);
 +	}
 +
 +	dsl_dataset_rele(ds, FTAG);
 +	return (0);
 +}
 +
  void
  dmu_objset_set_user(objset_t *os, void *user_ptr)
  {
 
 Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
 ==============================================================================
 --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	Tue May 18 05:18:21 2010	(r208254)
 +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	Tue May 18 07:45:27 2010	(r208255)
 @@ -26,8 +26,6 @@
  #ifndef	_SYS_DMU_OBJSET_H
  #define	_SYS_DMU_OBJSET_H
  
 -#pragma ident	"%Z%%M%	%I%	%E% SMI"
 -
  #include <sys/spa.h>
  #include <sys/arc.h>
  #include <sys/txg.h>
 @@ -118,6 +116,7 @@ int dmu_objset_find(char *name, int func
      int flags);
  int dmu_objset_find_spa(spa_t *spa, const char *name,
      int func(spa_t *, uint64_t, const char *, void *), void *arg, int flags);
 +int dmu_objset_prefetch(char *name, void *arg);
  void dmu_objset_byteswap(void *buf, size_t size);
  int dmu_objset_evict_dbufs(objset_t *os);
  
 
 Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
 ==============================================================================
 --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Tue May 18 05:18:21 2010	(r208254)
 +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Tue May 18 07:45:27 2010	(r208255)
 @@ -1349,6 +1349,14 @@ zfs_ioc_dataset_list_next(zfs_cmd_t *zc)
  		(void) strlcat(zc->zc_name, "/", sizeof (zc->zc_name));
  	p = zc->zc_name + strlen(zc->zc_name);
  
 +	if (zc->zc_cookie == 0) {
 +		uint64_t cookie = 0;
 +		int len = sizeof (zc->zc_name) - (p - zc->zc_name);
 +
 +		while (dmu_dir_list_next(os, len, p, NULL, &cookie) == 0)
 +			dmu_objset_prefetch(p, NULL);
 +	}
 +
  	do {
  		error = dmu_dir_list_next(os,
  		    sizeof (zc->zc_name) - (p - zc->zc_name), p,
 @@ -1387,6 +1395,9 @@ zfs_ioc_snapshot_list_next(zfs_cmd_t *zc
  	objset_t *os;
  	int error;
  
 +	if (zc->zc_cookie == 0)
 +		dmu_objset_find(zc->zc_name, dmu_objset_prefetch,
 +		    NULL, DS_FIND_SNAPSHOTS);
  	error = dmu_objset_open(zc->zc_name,
  	    DMU_OST_ANY, DS_MODE_USER | DS_MODE_READONLY, &os);
  	if (error)
 _______________________________________________
 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: patched->closed 
State-Changed-By: mm 
State-Changed-When: Tue May 18 07:56:44 UTC 2010 
State-Changed-Why:  
Committed. Thanks! 

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