diff options
author | kib <kib@FreeBSD.org> | 2013-01-03 19:01:56 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2013-01-03 19:01:56 +0000 |
commit | defbe57abedd3e1b5d0e14347fb254fae22f3242 (patch) | |
tree | b056f40c8605df0b1cc0c332c397220e901d2b24 /sys/fs/nandfs/nandfs_segment.c | |
parent | 6ca88cdb6c4fcea3235e0ca8ca2e98441d38d4e1 (diff) | |
download | FreeBSD-src-defbe57abedd3e1b5d0e14347fb254fae22f3242.zip FreeBSD-src-defbe57abedd3e1b5d0e14347fb254fae22f3242.tar.gz |
Remove the last use of the deprecated MNT_VNODE_FOREACH interface in
the tree.
With the help from: mjg
Tested by: Ronald Klop <ronald-freebsd8@klop.yi.org>
MFC after: 2 weeks
Diffstat (limited to 'sys/fs/nandfs/nandfs_segment.c')
-rw-r--r-- | sys/fs/nandfs/nandfs_segment.c | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/sys/fs/nandfs/nandfs_segment.c b/sys/fs/nandfs/nandfs_segment.c index 836bead..7433e77 100644 --- a/sys/fs/nandfs/nandfs_segment.c +++ b/sys/fs/nandfs/nandfs_segment.c @@ -478,39 +478,19 @@ nandfs_iterate_dirty_vnodes(struct mount *mp, struct nandfs_seginfo *seginfo) struct nandfs_node *nandfs_node; struct vnode *vp, *mvp; struct thread *td; - int error, lockreq, update; + int error, update; td = curthread; - lockreq = LK_EXCLUSIVE | LK_INTERLOCK | LK_RETRY; - MNT_ILOCK(mp); - - MNT_VNODE_FOREACH(vp, mp, mvp) { + MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) { update = 0; - if (mp->mnt_syncer == vp) - continue; - if (VOP_ISLOCKED(vp)) - continue; - - VI_LOCK(vp); - MNT_IUNLOCK(mp); - if (vp->v_iflag & VI_DOOMED) { + if (mp->mnt_syncer == vp || VOP_ISLOCKED(vp)) { VI_UNLOCK(vp); - MNT_ILOCK(mp); - continue; - } - - if ((error = vget(vp, lockreq, td)) != 0) { - MNT_ILOCK(mp); continue; } - - if (vp->v_iflag & VI_DOOMED) { - vput(vp); - MNT_ILOCK(mp); + if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK | LK_NOWAIT, td) != 0) continue; - } nandfs_node = VTON(vp); if (nandfs_node->nn_flags & IN_MODIFIED) { @@ -532,12 +512,8 @@ nandfs_iterate_dirty_vnodes(struct mount *mp, struct nandfs_seginfo *seginfo) if (update) nandfs_node_update(nandfs_node); - - MNT_ILOCK(mp); } - MNT_IUNLOCK(mp); - return (0); } |