svn commit: r352404 - head/sys/fs/fuse
Alan Somers
asomers at FreeBSD.org
Mon Sep 16 14:51:50 UTC 2019
Author: asomers
Date: Mon Sep 16 14:51:49 2019
New Revision: 352404
URL: https://svnweb.freebsd.org/changeset/base/352404
Log:
fusefs: fix some minor issues with fuse_vnode_setparent
* When unparenting a vnode, actually clear the flag. AFAIK this is basically
a no-op because we only unparent a vnode when reclaiming it or when
unlinking.
* There's no need to call fuse_vnode_setparent during reclaim, because we're
about to free the vnode data anyway.
Reviewed by: emaste
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D21630
Modified:
head/sys/fs/fuse/fuse_node.h
head/sys/fs/fuse/fuse_vnops.c
Modified: head/sys/fs/fuse/fuse_node.h
==============================================================================
--- head/sys/fs/fuse/fuse_node.h Mon Sep 16 14:51:24 2019 (r352403)
+++ head/sys/fs/fuse/fuse_node.h Mon Sep 16 14:51:49 2019 (r352404)
@@ -174,6 +174,8 @@ fuse_vnode_setparent(struct vnode *vp, struct vnode *d
MPASS(dvp->v_type == VDIR);
VTOFUD(vp)->parent_nid = VTOI(dvp);
VTOFUD(vp)->flag |= FN_PARENT_NID;
+ } else {
+ VTOFUD(vp)->flag &= ~FN_PARENT_NID;
}
}
Modified: head/sys/fs/fuse/fuse_vnops.c
==============================================================================
--- head/sys/fs/fuse/fuse_vnops.c Mon Sep 16 14:51:24 2019 (r352403)
+++ head/sys/fs/fuse/fuse_vnops.c Mon Sep 16 14:51:49 2019 (r352404)
@@ -1525,11 +1525,10 @@ fuse_vnop_reclaim(struct vop_reclaim_args *ap)
fuse_filehandle_close(vp, fufh, td, NULL);
}
- if ((!fuse_isdeadfs(vp)) && (fvdat->nlookup)) {
+ if (!fuse_isdeadfs(vp) && fvdat->nlookup > 0) {
fuse_internal_forget_send(vnode_mount(vp), td, NULL, VTOI(vp),
fvdat->nlookup);
}
- fuse_vnode_setparent(vp, NULL);
cache_purge(vp);
vfs_hash_remove(vp);
fuse_vnode_destroy(vp);
More information about the svn-src-all
mailing list