nfs: patch up MNT_LAZY on sync

It is a de facto noop, just make it less costly.

Reviewed by:	rmacklem
Differential Revision:	https://reviews.freebsd.org/D38763
This commit is contained in:
Mateusz Guzik 2023-02-24 19:18:11 +00:00
parent a55b5a9aed
commit 5ff7fb76cb

View File

@ -1918,14 +1918,16 @@ nfs_sync(struct mount *mp, int waitfor)
}
MNT_IUNLOCK(mp);
if (waitfor == MNT_LAZY)
return (0);
/*
* Force stale buffer cache information to be flushed.
*/
loop:
MNT_VNODE_FOREACH_ALL(vp, mp, mvp) {
/* XXX Racy bv_cnt check. */
if (NFSVOPISLOCKED(vp) || vp->v_bufobj.bo_dirty.bv_cnt == 0 ||
waitfor == MNT_LAZY) {
if (NFSVOPISLOCKED(vp) || vp->v_bufobj.bo_dirty.bv_cnt == 0) {
VI_UNLOCK(vp);
continue;
}