From 9e53652005aa7aba8816e73dc832d2e247491463 Mon Sep 17 00:00:00 2001 From: dyson Date: Thu, 15 Aug 1996 06:45:01 +0000 Subject: [PATCH] Certain vnode buffer list operations were not being spl protected, and they needed to be. Brelse for example can be called at interrupt level, and the buffer list operations were not being protected from it. --- sys/kern/vfs_export.c | 6 +++++- sys/kern/vfs_subr.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index 3070b3e313da..af966ddf086b 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.13 (Berkeley) 4/18/94 - * $Id: vfs_subr.c,v 1.56 1996/07/24 21:21:43 phk Exp $ + * $Id: vfs_subr.c,v 1.57 1996/07/30 18:00:25 bde Exp $ */ /* @@ -639,11 +639,14 @@ reassignbuf(bp, newvp) register struct vnode *newvp; { register struct buflists *listheadp; + int s; if (newvp == NULL) { printf("reassignbuf: NULL"); return; } + + s = splbio(); /* * Delete from old vnode list, if on one. */ @@ -670,6 +673,7 @@ reassignbuf(bp, newvp) listheadp = &newvp->v_cleanblkhd; bufinsvn(bp, listheadp); } + splx(s); } #ifndef DEVFS_ROOT diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 3070b3e313da..af966ddf086b 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.13 (Berkeley) 4/18/94 - * $Id: vfs_subr.c,v 1.56 1996/07/24 21:21:43 phk Exp $ + * $Id: vfs_subr.c,v 1.57 1996/07/30 18:00:25 bde Exp $ */ /* @@ -639,11 +639,14 @@ reassignbuf(bp, newvp) register struct vnode *newvp; { register struct buflists *listheadp; + int s; if (newvp == NULL) { printf("reassignbuf: NULL"); return; } + + s = splbio(); /* * Delete from old vnode list, if on one. */ @@ -670,6 +673,7 @@ reassignbuf(bp, newvp) listheadp = &newvp->v_cleanblkhd; bufinsvn(bp, listheadp); } + splx(s); } #ifndef DEVFS_ROOT