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;

Reply via email to