summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient/nfs_bio.c
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2002-07-16 19:43:59 +0000
committerdillon <dillon@FreeBSD.org>2002-07-16 19:43:59 +0000
commit9d3af4cbd88afdd8a8683d64b06cefeab624eb75 (patch)
treef86f7011f3bafc935b2ba2b9206cb4c0a0fd1f2e /sys/nfsclient/nfs_bio.c
parentfe71e4fa203fd8c94989894d621d46100b917194 (diff)
downloadFreeBSD-src-9d3af4cbd88afdd8a8683d64b06cefeab624eb75.zip
FreeBSD-src-9d3af4cbd88afdd8a8683d64b06cefeab624eb75.tar.gz
Fix a bug nfs_write() related to ^C'ing during a file write on an
interruptable mount. We were returning from inside the loop without releasing the rslock. Submitted by: Mike Junk <junk@isilon.com> MFC after: 3 days
Diffstat (limited to 'sys/nfsclient/nfs_bio.c')
-rw-r--r--sys/nfsclient/nfs_bio.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/nfsclient/nfs_bio.c b/sys/nfsclient/nfs_bio.c
index b8151c3..e244c64 100644
--- a/sys/nfsclient/nfs_bio.c
+++ b/sys/nfsclient/nfs_bio.c
@@ -930,8 +930,10 @@ again:
if (bp->b_dirtyend > 0 &&
(on > bp->b_dirtyend || (on + n) < bp->b_dirtyoff)) {
- if (BUF_WRITE(bp) == EINTR)
- return (EINTR);
+ if (BUF_WRITE(bp) == EINTR) {
+ error = EINTR;
+ break;
+ }
goto again;
}
OpenPOWER on IntegriCloud