Messages in this thread | | | Date | Tue, 22 Dec 2009 10:56:20 +0100 | From | Jean-Pierre André <> | Subject | Re: [fuse-devel] utimensat fails to update ctime |
| |
Hi all,
OGAWA Hirofumi wrote: > Eric Blake<ebb9@byu.net> writes: > > > It is likely the issue of libfuse or ntfs-3g. I don't know about ntfs-3g > people at all. So, for now, just Cc: to fuse people. >
Which ntfs-3g version are you using ?
>> utimensat(0, NULL, {UTIME_OMIT, UTIME_NOW}, 0) = 0 >> >
Currently ntfs-3g does not set sub-second precision.
There is also a slight problem in the fuse interface : the time buffer is never passed as NULL, consequently in some circumstances ntfs-3g cannot decide correctly over permissions. A permissive action is taken in this situation.
> > From this, "ia_valid" will have "ATTR_CTIME | ATTR_MTIME". And the > request would pass to userland via fuse of kernel part, then it will be > handled by libfuse. > > > From quick grep of libfuse and ntfs-3g (would not be latest), ntfs-3g is > using "struct fuse_operations", not "struct fuse_lowlevel_ops". >
With the latest ntfs-3g, currently as a release candidate, you can (optionally) use the low level fuse interface http://pagesperso-orange.fr/b.andre/advanced-ntfs-3g.html use the "lowntfs-3g" driver instead of "ntfs-3g"
Hope this helps
Regards
Jean-Pierre
| |