diff options
author | kib <kib@FreeBSD.org> | 2014-11-21 10:22:54 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2014-11-21 10:22:54 +0000 |
commit | 76e2f9a8d7bda9826faa9d78d98ddd4d2248e5c1 (patch) | |
tree | 3ff773a42c1807394fb4730205ff176c3d7a5dae | |
parent | e86b237c8dc304ffad8ca1227714c1422163b9be (diff) | |
download | FreeBSD-src-76e2f9a8d7bda9826faa9d78d98ddd4d2248e5c1.zip FreeBSD-src-76e2f9a8d7bda9826faa9d78d98ddd4d2248e5c1.tar.gz |
MFC r274501:
In vfs_write_suspend_umnt(), if suspension cannot be established, do
not forget to restore write ops count when returning the error.
-rw-r--r-- | sys/kern/vfs_vnops.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 8085128..c1b6558 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -1849,8 +1849,10 @@ vfs_write_suspend_umnt(struct mount *mp) for (;;) { vn_finished_write(mp); error = vfs_write_suspend(mp, 0); - if (error != 0) + if (error != 0) { + vn_start_write(NULL, &mp, V_WAIT); return (error); + } MNT_ILOCK(mp); if ((mp->mnt_kern_flag & MNTK_SUSPENDED) != 0) break; |