Messages in this thread | | | Date | Tue, 4 Dec 2012 11:41:06 -0800 | From | Zach Brown <> | Subject | Re: [PATCH] Update atime from future. |
| |
On Tue, Dec 04, 2012 at 01:56:39AM +0800, yangsheng wrote: > Relatime should update the inode atime if it is more than a day in the > future. The original problem seen was a tarball that had a bad atime, > but could also happen if someone fat-fingers a "touch". The future > atime will never be fixed. Before the relatime patch, the future atime > would be updated back to the current time on the next access.
I guess.
> /* > + * Is the previous atime value in future? If yes, > + * update atime: > + */ > + if ((long)(now.tv_sec - inode->i_atime.tv_sec) < -RELATIME_MARGIN) > + return 1;
But this is confusing to read. "If atime is less than a negative day in the past.. wait, what?"
It seems like we should combine the two RELATIME_MARGIN tests.
/* * Update atime if it's older than a day or more than a day * in the future, which we assume is corrupt. */ if (abs(inode->i_atime.tv_sec - now.tv_sec)) >= RELATIME_MARGIN) return 1;
(I don't know if you'd still need the (long) cast in there, given the type tests in abs()).
- z
| |