gfs2: Support negative atimes
When inodes are read from disk, GFS2 will only update in-memory atimes older than the on-disk atimes; this prevents atimes from going backwards. The atimes of newly allocated inodes are initialized to 0. This means that when an atime is explicitly set to a negative value, this value will not persist. Fix by setting the atime of newly allocated inodes to the lowest possible value instead of 0. Fixes xfstest generic/258. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Bob Peterson <rpeterso@redhat.com>
This commit is contained in:
parent
9b7c2ddb45
commit
38eedf2841
|
@ -189,7 +189,8 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type,
|
||||||
|
|
||||||
gfs2_set_iop(inode);
|
gfs2_set_iop(inode);
|
||||||
|
|
||||||
inode->i_atime.tv_sec = 0;
|
/* Lowest possible timestamp; will be overwritten in gfs2_dinode_in. */
|
||||||
|
inode->i_atime.tv_sec = 1LL << (8 * sizeof(inode->i_atime.tv_sec) - 1);
|
||||||
inode->i_atime.tv_nsec = 0;
|
inode->i_atime.tv_nsec = 0;
|
||||||
|
|
||||||
unlock_new_inode(inode);
|
unlock_new_inode(inode);
|
||||||
|
|
Loading…
Reference in New Issue