The "bufpool" pool is already protected at IPL_BIO (see line 242 of
kern/vfs_bio.c), so it's redundant to block interrupts in getphysbuf()
just for allocating from the pool.
Index: kern/kern_physio.c
===================================================================
RCS file: /cvs/src/sys/kern/kern_physio.c,v
retrieving revision 1.29
diff -u -p kern/kern_physio.c
--- kern/kern_physio.c 4 Jun 2009 21:27:14 -0000 1.29
+++ kern/kern_physio.c 18 Jun 2010 22:52:46 -0000
@@ -262,11 +262,8 @@ struct buf *
getphysbuf(void)
{
struct buf *bp;
- int s;
- s = splbio();
bp = pool_get(&bufpool, PR_WAITOK | PR_ZERO);
- splx(s);
bp->b_vnbufs.le_next = NOLIST;