From 0df71d97eb7cf2b5afd6556d8855b7d36ba57f8d Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sat, 5 Mar 2011 11:25:04 +1100 Subject: [PATCH] Don't try to set access time on objects that don't record access time. e.g. TypeInodeFile, TypeSegmentMap etc. Doing so can corrupt other data. Signed-off-by: NeilBrown --- inode.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/inode.c b/inode.c index 50ecf31..9948ede 100644 --- a/inode.c +++ b/inode.c @@ -568,6 +568,8 @@ static int update_atime_delta(struct inode *ino) * i_atime and i_accesstime */ int rv; + if (LAFSI(ino)->type < TypeBase) + return 0; if (timespec_compare(&ino->i_atime, &LAFSI(ino)->md.file.i_accesstime) <= 0) { /* We cannot store negative delta so if i_atime is in the @@ -1296,10 +1298,12 @@ void lafs_dirty_inode(struct inode *ino) store_atime_delta(ino); return; } - set_bit(I_Dirty, &LAFSI(ino)->iflags); ino->i_sb->s_dirt = 1; + + if (LAFSI(ino)->type < TypeBase) + return; LAFSI(ino)->md.file.i_accesstime = ino->i_atime; if (LAFSI(ino)->md.file.atime_offset) { LAFSI(ino)->md.file.atime_offset = 0; -- 2.39.5