--- - branch: MAIN date: Mon Apr 25 04:54:53 UTC 2011 files: - new: '1.24' old: '1.23' path: src/lib/libperfuse/ops.c pathrev: src/lib/libperfuse/ops.c@1.24 type: modified - new: '1.12' old: '1.11' path: src/lib/libperfuse/perfuse.c pathrev: src/lib/libperfuse/perfuse.c@1.12 type: modified - new: '1.17' old: '1.16' path: src/lib/libperfuse/perfuse_priv.h pathrev: src/lib/libperfuse/perfuse_priv.h@1.17 type: modified - new: '1.11' old: '1.10' path: src/lib/libperfuse/subr.c pathrev: src/lib/libperfuse/subr.c@1.11 type: modified id: 20110425T045453Z.113484c99e7d8498b95a54958d882e445b00f5e5 log: | - Implement proper unprivilegied user permission verifications Verification is now done in the lookup method, as it is the way to go. Of course there are corner cases, such as the sticky bit which need special handling in the remove method. - Set full fsidx in vftstat method - Do not pass O_APPEND to the filesystem. FUSE always sends the write offset, so setting O_APPEND is useless. If the filesystem uses it in an open(2) system call, it will even cause file corruptions, since offsets given to pwrite(2) will be ignored. This fix allows glusterfs to host a NetBSD ./build.sh -o build - Do not use the FUSE access method, use getattr and check for permission on our own. The problem is that a FUSE filesystem will typically use the Linux-specific setfsuid() to perform access control. If that is missing, any chack is likely to occur on behalf of the user running the filesystem (typically root), causing access method to return wrong information. - When possible, avoid performing a getattr method call and use cached value in puffs_node instead. We still retreive the latest value by calling getattr when performing append write operation, to minimize the chances that another writer appended since the last time we did. - Update puffs_node cached file size in write method - Remove unused argument to perfuse_destroy_pn() module: src subject: 'CVS commit: src/lib/libperfuse' unixtime: '1303707293' user: manu