diff options
| author | ad <ad@NetBSD.org> | 2008-06-03 12:14:08 +0000 |
|---|---|---|
| committer | ad <ad@NetBSD.org> | 2008-06-03 12:14:08 +0000 |
| commit | a22432a7bc26deeaa2c94bb5176697bb78c8598b (patch) | |
| tree | 5cc2645ace4cc5ee4aefcddc9ddebdd48c4015ea /sys/dev | |
| parent | e1be8408a0c9fa85aa471cfe0e3bfc48c3baf842 (diff) | |
dkwedge_read: don't place struct buf on the stack.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/dkwedge/dk.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/sys/dev/dkwedge/dk.c b/sys/dev/dkwedge/dk.c index 1092a21282e..fb658bcf322 100644 --- a/sys/dev/dkwedge/dk.c +++ b/sys/dev/dkwedge/dk.c @@ -1,4 +1,4 @@ -/* $NetBSD: dk.c,v 1.40 2008/06/01 11:38:26 chris Exp $ */ +/* $NetBSD: dk.c,v 1.41 2008/06/03 12:14:08 ad Exp $ */ /*- * Copyright (c) 2004, 2005, 2006, 2007 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dk.c,v 1.40 2008/06/01 11:38:26 chris Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dk.c,v 1.41 2008/06/03 12:14:08 ad Exp $"); #include "opt_dkwedge.h" @@ -851,22 +851,22 @@ int dkwedge_read(struct disk *pdk, struct vnode *vp, daddr_t blkno, void *tbuf, size_t len) { - struct buf b; + struct buf *bp; int result; - buf_init(&b); + bp = getiobuf(vp, true); - b.b_vp = vp; - b.b_dev = vp->v_rdev; - b.b_blkno = blkno; - b.b_bcount = b.b_resid = len; - b.b_flags = B_READ; - b.b_proc = curproc; - b.b_data = tbuf; + bp->b_dev = vp->v_rdev; + bp->b_blkno = blkno; + bp->b_bcount = len; + bp->b_resid = len; + bp->b_flags = B_READ; + bp->b_data = tbuf; + + VOP_STRATEGY(vp, bp); + result = biowait(bp); + putiobuf(bp); - VOP_STRATEGY(vp, &b); - result = biowait(&b); - buf_destroy(&b); return result; } |
