diff options
Diffstat (limited to 'fs/inode.c')
-rw-r--r-- | fs/inode.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/inode.c b/fs/inode.c index e171f7b5f9e4..9cef4e16aeda 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -1619,6 +1619,13 @@ bool atime_needs_update(const struct path *path, struct inode *inode) | |||
1619 | 1619 | ||
1620 | if (inode->i_flags & S_NOATIME) | 1620 | if (inode->i_flags & S_NOATIME) |
1621 | return false; | 1621 | return false; |
1622 | |||
1623 | /* Atime updates will likely cause i_uid and i_gid to be written | ||
1624 | * back improprely if their true value is unknown to the vfs. | ||
1625 | */ | ||
1626 | if (HAS_UNMAPPED_ID(inode)) | ||
1627 | return false; | ||
1628 | |||
1622 | if (IS_NOATIME(inode)) | 1629 | if (IS_NOATIME(inode)) |
1623 | return false; | 1630 | return false; |
1624 | if ((inode->i_sb->s_flags & MS_NODIRATIME) && S_ISDIR(inode->i_mode)) | 1631 | if ((inode->i_sb->s_flags & MS_NODIRATIME) && S_ISDIR(inode->i_mode)) |