From: NeilBrown Date: Sat, 5 Mar 2011 00:25:04 +0000 (+1100) Subject: Don't try to set access time on objects that don't record access time. X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=0df71d97eb7cf2b5afd6556d8855b7d36ba57f8d;p=LaFS.git 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 --- 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;