From owner-svn-src-user@FreeBSD.ORG Tue Nov 17 06:32:57 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65098106566C; Tue, 17 Nov 2009 06:32:57 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 396FD8FC15; Tue, 17 Nov 2009 06:32:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nAH6Wv3Y093756; Tue, 17 Nov 2009 06:32:57 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nAH6WvX9093754; Tue, 17 Nov 2009 06:32:57 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200911170632.nAH6WvX9093754@svn.freebsd.org> From: Kip Macy Date: Tue, 17 Nov 2009 06:32:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r199346 - user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 06:32:57 -0000 Author: kmacy Date: Tue Nov 17 06:32:56 2009 New Revision: 199346 URL: http://svn.freebsd.org/changeset/base/199346 Log: don't bgetvp on a new buffer if the blkno is not set Modified: user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Modified: user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c ============================================================================== --- user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Tue Nov 17 05:59:26 2009 (r199345) +++ user/kmacy/releng_8_fcs_buf/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Tue Nov 17 06:32:56 2009 (r199346) @@ -495,8 +495,6 @@ static void arc_get_data_buf(arc_buf_t * static void arc_access(arc_buf_hdr_t *buf, kmutex_t *hash_lock); static int arc_evict_needed(arc_buf_contents_t type); static void arc_evict_ghost(arc_state_t *state, spa_t *spa, int64_t bytes); -static void arc_binval(arc_buf_t *buf, off_t blkno, struct vnode *vp, - size_t size, int flags, struct buf *bp); #define GHOST_STATE(state) \ ((state) == arc_mru_ghost || (state) == arc_mfu_ghost || \ @@ -1303,7 +1301,7 @@ arc_buf_add_ref(arc_buf_t *buf, void* ta static void arc_bgetvp(arc_buf_t *buf) { - off_t blkno = buf->b_hdr->b_dva.dva_word[1] & ~(1UL<<63); + uint64_t blkno = buf->b_hdr->b_dva.dva_word[1] & ~(1UL<<63); struct buf *bp = buf->b_bp; struct vnode *vp = spa_get_vnode(buf->b_hdr->b_spa); struct bufobj *bo = &vp->v_bufobj; @@ -1338,9 +1336,11 @@ arc_bgetvp(arc_buf_t *buf) } else brelse(bp); } else { - buf->b_bp->b_flags |= B_CACHE; - buf->b_bp->b_flags &= ~B_INVAL; - bgetvp(vp, buf->b_bp); + if (blkno != 0) { + buf->b_bp->b_flags |= B_CACHE; + buf->b_bp->b_flags &= ~B_INVAL; + bgetvp(vp, buf->b_bp); + } BO_UNLOCK(bo); } @@ -1352,7 +1352,7 @@ arc_getblk(arc_buf_t *buf) uint64_t size = buf->b_hdr->b_size; arc_buf_contents_t type = buf->b_hdr->b_type; spa_t *spa = buf->b_hdr->b_spa; - off_t blkno = buf->b_hdr->b_dva.dva_word[1] & ~(1UL<<63); + uint64_t blkno = buf->b_hdr->b_dva.dva_word[1] & ~(1UL<<63); void *data; struct buf *newbp, *bp; arc_buf_t *tbuf; @@ -3385,7 +3385,7 @@ arc_write_done(zio_t *zio) */ struct buf *bp = buf->b_bp; struct vnode *vp = spa_get_vnode(hdr->b_spa); - off_t blkno = hdr->b_dva.dva_word[1] & ~(1UL<<63); + uint64_t blkno = hdr->b_dva.dva_word[1] & ~(1UL<<63); CTR3(KTR_SPARE2, "arc_write_done() bp=%p flags %X blkno %ld", bp, bp ? bp->b_flags : 0, blkno);