svn commit: r274501 - head/sys/kern

Konstantin Belousov kib at FreeBSD.org
Fri Nov 14 11:31:10 UTC 2014


Author: kib
Date: Fri Nov 14 11:31:10 2014
New Revision: 274501
URL: https://svnweb.freebsd.org/changeset/base/274501

Log:
  In vfs_write_suspend_umnt(), if suspension cannot be established, do
  not forget to restore write ops count when returning the error.
  
  Reported and tested by:	pho
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Modified:
  head/sys/kern/vfs_vnops.c

Modified: head/sys/kern/vfs_vnops.c
==============================================================================
--- head/sys/kern/vfs_vnops.c	Fri Nov 14 10:56:33 2014	(r274500)
+++ head/sys/kern/vfs_vnops.c	Fri Nov 14 11:31:10 2014	(r274501)
@@ -1881,8 +1881,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;


More information about the svn-src-all mailing list