svn commit: r247845 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor/illumos/dist/cmd/zdb

Martin Matuska mm at FreeBSD.org
Tue Mar 5 15:35:58 UTC 2013


Author: mm
Date: Tue Mar  5 15:35:57 2013
New Revision: 247845
URL: http://svnweb.freebsd.org/changeset/base/247845

Log:
  Update vendor/illumos/dist and vendor-sys/illumos/dist
  to illumos-gate 13977:af7f2603d4d7
  
  Illumos ZFS issues:
    3603 panic from bpobj_enqueue_subobj()
    3604 zdb should print bpobjs more verbosely

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/bpobj.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dmu.c

Changes in other areas also in this revision:
Modified:
  vendor/illumos/dist/cmd/zdb/zdb.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/bpobj.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/bpobj.c	Tue Mar  5 15:33:28 2013	(r247844)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/bpobj.c	Tue Mar  5 15:35:57 2013	(r247845)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
  */
 
 #include <sys/bpobj.h>
@@ -418,6 +418,12 @@ bpobj_enqueue_subobj(bpobj_t *bpo, uint6
 
 			VERIFY3U(0, ==, dmu_buf_hold(bpo->bpo_os, subsubobjs,
 			    0, FTAG, &subdb, 0));
+			/*
+			 * Make sure that we are not asking dmu_write()
+			 * to write more data than we have in our buffer.
+			 */
+			VERIFY3U(subdb->db_size, >=,
+			    numsubsub * sizeof (subobj));
 			dmu_write(bpo->bpo_os, bpo->bpo_phys->bpo_subobjs,
 			    bpo->bpo_phys->bpo_num_subobjs * sizeof (subobj),
 			    numsubsub * sizeof (subobj), subdb->db_data, tx);

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu.c	Tue Mar  5 15:33:28 2013	(r247844)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu.c	Tue Mar  5 15:35:57 2013	(r247845)
@@ -1698,7 +1698,7 @@ dmu_object_info_from_dnode(dnode_t *dn, 
 	doi->doi_checksum = dn->dn_checksum;
 	doi->doi_compress = dn->dn_compress;
 	doi->doi_physical_blocks_512 = (DN_USED_BYTES(dnp) + 256) >> 9;
-	doi->doi_max_offset = (dnp->dn_maxblkid + 1) * dn->dn_datablksz;
+	doi->doi_max_offset = (dn->dn_maxblkid + 1) * dn->dn_datablksz;
 	doi->doi_fill_count = 0;
 	for (int i = 0; i < dnp->dn_nblkptr; i++)
 		doi->doi_fill_count += dnp->dn_blkptr[i].blk_fill;


More information about the svn-src-all mailing list