Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ecryptfs: Set s_time_gran to get correct time granularity

Set the eCryptfs superblock time granularity, using the lower
filesystem's s_time_gran value, to prevent unnecessary inode timestamp
truncation to the granularity of a full second.

The use of utimensat(2) to set a timestamp with nanosecond precision
would trigger this bug. That occurred when using the following utilities
to update timestamps of a file:
* cp -p: copy a file and preserve its atime and mtime
* touch -r: touch a file and use a reference file's timestamps

Closes: https://bugs.launchpad.net/ecryptfs/+bug/1890486
Signed-off-by: Frank Hsiao 蕭法宣 <frankhsiao@qnap.com>
[tyhicks: Partially rewrite the commit message]
Signed-off-by: Tyler Hicks <code@tyhicks.com>

authored by

Frank Hsiao 蕭法宣 and committed by
Tyler Hicks
7d9ebf33 c3692998

+1
+1
fs/ecryptfs/main.c
··· 531 531 s->s_blocksize = path.dentry->d_sb->s_blocksize; 532 532 s->s_magic = ECRYPTFS_SUPER_MAGIC; 533 533 s->s_stack_depth = path.dentry->d_sb->s_stack_depth + 1; 534 + s->s_time_gran = path.dentry->d_sb->s_time_gran; 534 535 535 536 rc = -EINVAL; 536 537 if (s->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) {