main: fix set mtime for a symlink

Closes: https://github.com/containers/fuse-overlayfs/issues/204

Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
This commit is contained in:
Giuseppe Scrivano 2020-04-25 13:28:18 +02:00
parent e70b270460
commit 26e4226a41
No known key found for this signature in database
GPG Key ID: 67E38F7A8BA21772
2 changed files with 20 additions and 1 deletions

2
main.c
View File

@ -3646,7 +3646,7 @@ ovl_setattr (fuse_req_t req, fuse_ino_t ino, struct stat *attr, int to_set, stru
if (fd >= 0)
ret = futimens (fd, times);
else
ret = utimensat (AT_FDCWD, path, times, AT_SYMLINK_NOFOLLOW);
ret = utimensat (AT_FDCWD, path, times, 0);
if (ret < 0)
{
fuse_reply_err (req, errno);

View File

@ -169,3 +169,22 @@ test $(stat -c %h merged/a) = 5
rm -rf merged/a/3
test $(stat -c %h merged/a) = 4
# symlink mtime
touch merged/afile
ln -s afile merged/alink
touch -h -d "2020-01-02 12:13:14" merged/alink
stat --format "%y" merged/alink | grep "12:13:14"
stat --format "%x" merged/alink | grep "12:13:14"
# file mtime
touch -h -d "2020-01-02 11:12:13" merged/afile
stat --format "%y" merged/afile | grep "11:12:13"
stat --format "%x" merged/afile | grep "11:12:13"
# dir mtime
mkdir merged/adir
touch -h -d "2020-01-02 10:11:12" merged/adir
stat --format "%y" merged/adir | grep "10:11:12"
stat --format "%x" merged/adir | grep "10:11:12"