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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to