diff options
author | kib <kib@FreeBSD.org> | 2015-06-03 20:48:00 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2015-06-03 20:48:00 +0000 |
commit | 5ad0e0e2f396ec9665428165c49c83d65c3a424e (patch) | |
tree | 2b6195d33c62cfde0d5ab42078fbfc05a3e77797 /sys/ufs | |
parent | cc1181913606bf43173493a1895549b71519a124 (diff) | |
download | FreeBSD-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.c | 4 |
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; } |