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>