From c0486eb935632f3cd802c5a532abfc14b1b0e79e Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Fri, 9 Nov 1990 05:56:42 -0800 Subject: [PATCH] do not forget to unlock resources (from Torek) SCCS-vsn: sys/ufs/ffs/ufs_quota.c 7.6 SCCS-vsn: sys/ufs/ufs/ufs_quota.c 7.6 --- usr/src/sys/ufs/ffs/ufs_quota.c | 7 +++++-- usr/src/sys/ufs/ufs/ufs_quota.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/usr/src/sys/ufs/ffs/ufs_quota.c b/usr/src/sys/ufs/ffs/ufs_quota.c index 813aae5411..074ef60410 100644 --- a/usr/src/sys/ufs/ffs/ufs_quota.c +++ b/usr/src/sys/ufs/ffs/ufs_quota.c @@ -7,7 +7,7 @@ * * %sccs.include.redist.c% * - * @(#)ufs_quota.c 7.5 (Berkeley) %G% + * @(#)ufs_quota.c 7.6 (Berkeley) %G% */ #include "param.h" #include "time.h" @@ -837,8 +837,11 @@ dqsync(vp, dq) while (dq->dq_flags & DQ_LOCK) { dq->dq_flags |= DQ_WANT; sleep((caddr_t)dq, PINOD+2); - if ((dq->dq_flags & DQ_MOD) == 0) + if ((dq->dq_flags & DQ_MOD) == 0) { + if (vp != dqvp) + VOP_UNLOCK(dqvp); return (0); + } } dq->dq_flags |= DQ_LOCK; auio.uio_iov = &aiov; diff --git a/usr/src/sys/ufs/ufs/ufs_quota.c b/usr/src/sys/ufs/ufs/ufs_quota.c index 813aae5411..074ef60410 100644 --- a/usr/src/sys/ufs/ufs/ufs_quota.c +++ b/usr/src/sys/ufs/ufs/ufs_quota.c @@ -7,7 +7,7 @@ * * %sccs.include.redist.c% * - * @(#)ufs_quota.c 7.5 (Berkeley) %G% + * @(#)ufs_quota.c 7.6 (Berkeley) %G% */ #include "param.h" #include "time.h" @@ -837,8 +837,11 @@ dqsync(vp, dq) while (dq->dq_flags & DQ_LOCK) { dq->dq_flags |= DQ_WANT; sleep((caddr_t)dq, PINOD+2); - if ((dq->dq_flags & DQ_MOD) == 0) + if ((dq->dq_flags & DQ_MOD) == 0) { + if (vp != dqvp) + VOP_UNLOCK(dqvp); return (0); + } } dq->dq_flags |= DQ_LOCK; auio.uio_iov = &aiov; -- 2.20.1