summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorad <ad@NetBSD.org>2008-06-03 12:14:08 +0000
committerad <ad@NetBSD.org>2008-06-03 12:14:08 +0000
commita22432a7bc26deeaa2c94bb5176697bb78c8598b (patch)
tree5cc2645ace4cc5ee4aefcddc9ddebdd48c4015ea /sys/dev
parente1be8408a0c9fa85aa471cfe0e3bfc48c3baf842 (diff)
dkwedge_read: don't place struct buf on the stack.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/dkwedge/dk.c28
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;
}