Module Name: src Committed By: manu Date: Mon Jul 18 02:14:01 UTC 2011
Modified Files: src/lib/libperfuse: ops.c Log Message: ftruncate(2) cause a SETATTR with only va_size set, and some filesystems (e.g.: glusterfs) will do a custom handling in such a situation. This breaks because libpuffs folds a metadata (va_atime and va_mtime) update in each SETATTR. We try to identify SETATTR caused by ftruncate(2) and remove va_atime and va_mtime in such situation. This fixes a bug with glusterfs, where parts of a file downloaded by FTP was filled with zeros because of a ftruncate(2) sent out of order with write(2) requests. glusterfs behavior depends on the undocumented FUSE rule that ftruncate(2) will only set va_size in SETATTR. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/lib/libperfuse/ops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.