⬢ DragonFlyBSD Kernel Audit
DF-3121 / fix.diff
← back to finding ↓ download raw
--- a/sys/vfs/ufs/ufs_quota.c	2026-06-29 12:51:19.000000000 +0000
+++ b/sys/vfs/ufs/ufs_quota.c	2026-10-26 03:29:41.728762178 +0000
@@ -933,7 +933,9 @@
 		error = EIO;
 	if (dq->dq_flags & DQ_WANT)
 		wakeup((caddr_t)dq);
-	dq->dq_flags &= ~(DQ_MOD|DQ_LOCK|DQ_WANT);
+	if (error == 0)
+		dq->dq_flags &= ~DQ_MOD;	/* keep dirty on failure: retry */
+	dq->dq_flags &= ~(DQ_LOCK|DQ_WANT);
 	if (vp != dqvp)
 		vn_unlock(dqvp);
 	return (error);