Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/tmpfs/tmpfs_vfsops.c
Show First 20 Lines • Show All 166 Lines • ▼ Show 20 Lines | MNT_VNODE_FOREACH_ALL(vp, mp, mvp) { | ||||
/* | /* | ||||
* In lazy case, do unlocked read, avoid taking vnode | * In lazy case, do unlocked read, avoid taking vnode | ||||
* lock if not needed. Lost update will be handled on | * lock if not needed. Lost update will be handled on | ||||
* the next call. | * the next call. | ||||
* For non-lazy case, we must flush all pending | * For non-lazy case, we must flush all pending | ||||
* metadata changes now. | * metadata changes now. | ||||
*/ | */ | ||||
if (!lazy || (obj->flags & OBJ_TMPFS_DIRTY) != 0) { | if (!lazy || obj->generation != obj->cleangeneration) { | ||||
if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, | if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, | ||||
curthread) != 0) | curthread) != 0) | ||||
continue; | continue; | ||||
tmpfs_check_mtime(vp); | tmpfs_check_mtime(vp); | ||||
if (!lazy) | if (!lazy) | ||||
tmpfs_update(vp); | tmpfs_update(vp); | ||||
vput(vp); | vput(vp); | ||||
} else { | } else { | ||||
▲ Show 20 Lines • Show All 536 Lines • Show Last 20 Lines |