svn commit: r305594 - head/sys/ufs/ffs
Konstantin Belousov
kib at FreeBSD.org
Thu Sep 8 12:05:15 UTC 2016
Author: kib
Date: Thu Sep 8 12:05:13 2016
New Revision: 305594
URL: https://svnweb.freebsd.org/changeset/base/305594
Log:
In softdep_prealloc(), return early not only for snapshots, but for
the quota files as well.
Reported and tested by: pho
Reviewed by: mckusick
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Modified:
head/sys/ufs/ffs/ffs_softdep.c
Modified: head/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- head/sys/ufs/ffs/ffs_softdep.c Thu Sep 8 12:04:45 2016 (r305593)
+++ head/sys/ufs/ffs/ffs_softdep.c Thu Sep 8 12:05:13 2016 (r305594)
@@ -2997,10 +2997,13 @@ softdep_prealloc(vp, waitok)
("softdep_prealloc called on non-softdep filesystem"));
/*
* Nothing to do if we are not running journaled soft updates.
- * If we currently hold the snapshot lock, we must avoid handling
- * other resources that could cause deadlock.
+ * If we currently hold the snapshot lock, we must avoid
+ * handling other resources that could cause deadlock. Do not
+ * touch quotas vnode since it is typically recursed with
+ * other vnode locks held.
*/
- if (DOINGSUJ(vp) == 0 || IS_SNAPSHOT(VTOI(vp)))
+ if (DOINGSUJ(vp) == 0 || IS_SNAPSHOT(VTOI(vp)) ||
+ (vp->v_vflag & VV_SYSTEM) != 0)
return (0);
ump = VFSTOUFS(vp->v_mount);
ACQUIRE_LOCK(ump);
More information about the svn-src-head
mailing list