summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreivind <eivind@FreeBSD.org>1998-12-22 00:44:11 +0000
committereivind <eivind@FreeBSD.org>1998-12-22 00:44:11 +0000
commita4213663c9a0665ca27785031ebf9716429b3061 (patch)
tree13cf93391498584961228593a19bb3232c1e8d47
parenta0317115f84f3edf6aceb0ae00c972f0602134a9 (diff)
downloadFreeBSD-src-a4213663c9a0665ca27785031ebf9716429b3061.zip
FreeBSD-src-a4213663c9a0665ca27785031ebf9716429b3061.tar.gz
Check return value of tsleep(). I've checked of all call points -
there does not seem to be a problem with this. PR: kern/8732 Analysis by: David G Andersen <danderse@cs.utah.edu> Tested by: Alfred Perlstein <bright@hotjobs.com>
-rw-r--r--sys/kern/vfs_export.c11
-rw-r--r--sys/kern/vfs_subr.c11
2 files changed, 14 insertions, 8 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c
index 2b26fd7..985b9c6 100644
--- a/sys/kern/vfs_export.c
+++ b/sys/kern/vfs_export.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
- * $Id: vfs_subr.c,v 1.174 1998/12/04 22:54:51 archie Exp $
+ * $Id: vfs_subr.c,v 1.175 1998/12/21 23:38:33 eivind Exp $
*/
/*
@@ -579,9 +579,12 @@ vinvalbuf(vp, flags, cred, p, slpflag, slptimeo)
s = splbio();
while (vp->v_numoutput) {
vp->v_flag |= VBWAIT;
- tsleep((caddr_t)&vp->v_numoutput,
- slpflag | (PRIBIO + 1),
- "vinvlbuf", slptimeo);
+ error = tsleep((caddr_t)&vp->v_numoutput,
+ slpflag | (PRIBIO + 1), "vinvlbuf", slptimeo);
+ if (error) {
+ splx(s);
+ return (error);
+ }
}
if (!TAILQ_EMPTY(&vp->v_dirtyblkhd)) {
splx(s);
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 2b26fd7..985b9c6 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
- * $Id: vfs_subr.c,v 1.174 1998/12/04 22:54:51 archie Exp $
+ * $Id: vfs_subr.c,v 1.175 1998/12/21 23:38:33 eivind Exp $
*/
/*
@@ -579,9 +579,12 @@ vinvalbuf(vp, flags, cred, p, slpflag, slptimeo)
s = splbio();
while (vp->v_numoutput) {
vp->v_flag |= VBWAIT;
- tsleep((caddr_t)&vp->v_numoutput,
- slpflag | (PRIBIO + 1),
- "vinvlbuf", slptimeo);
+ error = tsleep((caddr_t)&vp->v_numoutput,
+ slpflag | (PRIBIO + 1), "vinvlbuf", slptimeo);
+ if (error) {
+ splx(s);
+ return (error);
+ }
}
if (!TAILQ_EMPTY(&vp->v_dirtyblkhd)) {
splx(s);
OpenPOWER on IntegriCloud