Module Name: src Committed By: martin Date: Sun Feb 10 13:40:41 UTC 2019
Modified Files: src/lib/libperfuse [netbsd-8]: debug.c ops.c perfuse.c perfuse_priv.h Log Message: Pull up following revision(s) (requested by manu in ticket #1186): lib/libperfuse/perfuse.c: revision 1.41 lib/libperfuse/perfuse_priv.h: revision 1.37 lib/libperfuse/ops.c: revision 1.85 lib/libperfuse/ops.c: revision 1.86 lib/libperfuse/debug.c: revision 1.13 Use reclaim2 to fix reclaim/lookup race conditions The PUFFS reclaim operation had a race condition with lookups: we could be asked to lookup a node, then to reclaim it before lookup completion. At lookup completion, we would then create a leaked node. Enter the PUFFS reclaim2 operation, which features a nlookup argument. That let us count how many lookups are pending and avoid the above described scenario. It also makes the codes simplier. - Fix directory filehandle usage with libufse. Fix lookup count libfuse does not use filehandle the same way for directories and other objects. As a result, filehandles obtained by OPENDIR should not be sent on non-directory related operations like READ/WRITE/GETATTR... While there, fix the lookup count sent to the FORGET operation, which led to leaked nodes. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.12.24.1 src/lib/libperfuse/debug.c cvs rdiff -u -r1.84 -r1.84.8.1 src/lib/libperfuse/ops.c cvs rdiff -u -r1.40 -r1.40.6.1 src/lib/libperfuse/perfuse.c cvs rdiff -u -r1.36 -r1.36.8.1 src/lib/libperfuse/perfuse_priv.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.