Jean-Pierre André<jean-pierre.andre@xxxxxxxxxx> writes:
Hi again,Hi,
Yes, with fuse_operations. It is why I'm saying the issue is libfuse orWell, the problem seems in fuse_lib_setattr() and ntfs_fuse_setattr()With ntfs-3g this is not directly possible, because
(lowlevel op too).
The both functions is requiring "ATIME | MTIME". Doesn't it mean the
ntfs-3g can't set only MTIME like above utimensat()?
the interface does not provide flags telling which
timestamps should be updated. The only way would
be fuse feeding both values (even though unchanged)
before calling ntfs-3g. This is true for all versions of
ntfs-3g.
ntfs-3g.
But I noticed ntfs-3g is including libfuse-lite sources and use it with
static link (I might be wrong here, because I just looked ntfs-3g source
slightly). AFAIK, the fuse of kernel part is passing the flags of some
sort of detail always.
[BTW, the code of that part in kernel may be the following,[...]
fs/fuse/dir.c:iattr_to_fattr(),
So, if libfuse-lite was fixed to supported that update request, it would
be able to do even if fuse_operations. I.e. in libfuse-lite, emulate
"ATIME | MTIME" request if "MTIME" only (pass unchanged original atime),
then call ->utime() callback. (or adds new utime2 callback with flags, or
something other solutions)
Or, if that request is known limitation of fuse_operations, I think it
would be clear state and ok. The fs needs to use lowlevel op to support
that.
With lowntfs-3g (release candidate only), this couldYes. AFAIK, fuse of kernel part is passing FATTR_MTIME without
be possible.... but this is not implemented, as the
case was never found up to now. I can provide you
with a patch,... if fuse can feed in the flags selectively.
FATTR_ATIME to userland (i.e. FUSE_SET_ATTR_ATIME and
FUSE_SET_ATTR_MTIME in libfuse).
I think it's good to implement if it's not design decision of ntfs-3g.
[BTW, just my guess though, it would be good to use "if (vaild&
ATTR_XXX)" style, not "switch()" to support various combinations of
flags]
Thanks.