Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Jan 2010 02:33:34 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r201970 - user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201001100233.o0A2XYUp089341@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Sun Jan 10 02:33:34 2010
New Revision: 201970
URL: http://svn.freebsd.org/changeset/base/201970

Log:
  - clear buf after it is removed
  - set object root to NULL if bp being removed is the last one

Modified:
  user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c

Modified: user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c
==============================================================================
--- user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c	Sun Jan 10 02:31:06 2010	(r201969)
+++ user/kmacy/releng_8_fcs_buf_xen/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_bio.c	Sun Jan 10 02:33:34 2010	(r201970)
@@ -571,6 +571,9 @@ zio_buf_blkno_remove_locked(vm_object_t 
 	state->zss_resident_count--;
 	state->zss_generation++;
 
+	if (bp == state->zss_blkno_root)
+		state->zss_blkno_root = NULL;
+	
 #ifdef INVARIANTS
 	bp->b_right = bp->b_left = NULL;
 #endif	
@@ -756,13 +759,14 @@ zio_buf_evict_overlap(vm_object_t object
 		TAILQ_REMOVE(&clh, tmpbp, b_cluster.cluster_entry);
 	evict:
 		zio_buf_vm_object_evict(tmpbp);
-		tmpbp->b_bufobj = NULL;
-		tmpbp->b_flags &= ~B_VMIO;
-		tmpbp->b_blkno = tmpbp->b_lblkno = 0;
 		/*
 		 * move buffer to the unmanaged tree
 		 */
 		zio_buf_blkno_remove_locked(object, tmpbp);
+		tmpbp->b_bufobj = NULL;
+		tmpbp->b_flags &= ~(B_VMIO|B_CACHE);
+		tmpbp->b_blkno = tmpbp->b_lblkno = 0;
+		tmpbp->b_state = NULL;
 	}
 done:
 	if (!(collisions == 1 && tmpbp != NULL && tmpbp->b_blkno == blkno &&



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