summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-06-03 20:48:00 +0000
committerkib <kib@FreeBSD.org>2015-06-03 20:48:00 +0000
commit5ad0e0e2f396ec9665428165c49c83d65c3a424e (patch)
tree2b6195d33c62cfde0d5ab42078fbfc05a3e77797 /sys/ufs
parentcc1181913606bf43173493a1895549b71519a124 (diff)
downloadFreeBSD-src-5ad0e0e2f396ec9665428165c49c83d65c3a424e.zip
FreeBSD-src-5ad0e0e2f396ec9665428165c49c83d65c3a424e.tar.gz
Syncing a directory vnode might drop the vnode lock in the
softdep_sync() similarly to the regular vnode sync. Allow retry for both vnode types. Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_vnops.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index 80f3269..618ed8e 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -201,8 +201,8 @@ retry:
* bo_dirty list. Recheck and resync as needed.
*/
BO_LOCK(bo);
- if (vp->v_type == VREG && (bo->bo_numoutput > 0 ||
- bo->bo_dirty.bv_cnt > 0)) {
+ if ((vp->v_type == VREG || vp->v_type == VDIR) &&
+ (bo->bo_numoutput > 0 || bo->bo_dirty.bv_cnt > 0)) {
BO_UNLOCK(bo);
goto retry;
}
OpenPOWER on IntegriCloud