[Bug 261434] [fusefs] mtime and ctime changed on every read file

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 25 Jan 2022 00:39:32 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261434

--- Comment #10 from Ivan Rozhuk <rozhuk.im@gmail.com> ---
(In reply to Alan Somers from comment #9)

> All the kernel does it send upcalls like FUSE_SETATTR to the fuse server

It come here:
https://github.com/libfuse/libfuse/blob/b08e275083d0316fa4d735d457869d62ce4114de/lib/fuse.c#L2873
or
https://github.com/libfuse/libfuse/blob/b08e275083d0316fa4d735d457869d62ce4114de/lib/fuse.c#L2884

then here:
https://github.com/libfuse/sshfs/blob/a2054a2b737577b63e97ea34d8c9976048766719/sshfs.c#L2663

and send via net.

This code handle atime+mtime together, even if upper layer set only one of
them.

Probably some fuse backends treat tv_sec=0 as empty and not set, but sftp proto
does not.
I see no other way to fix this except always set correct atime+mtime values
before send them to fuse.


> You really should try this on Linux with atime=on.  I think that by default Linux sets atime=off, which is probably why you didn't notice the problem there.


I ask friend, he test and say that only atime changes.

-- 
You are receiving this mail because:
You are the assignee for the bug.