Re: [PATCH RFC 01/12] time: Rename mktime() to mktime_unsafe()

From: Thomas Gleixner
Date: Mon Oct 27 2014 - 18:11:37 EST


On Mon, 27 Oct 2014, John Stultz wrote:
> On Mon, Oct 27, 2014 at 2:38 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> > On Mon, 27 Oct 2014, pang.xunlei wrote:
> >
> >> The kernel uses 32-bit signed value(time_t) for seconds since 1970-01-01:00:00:00, thus it
> >> will overflow at 2038-01-19 03:14:08 on 32-bit systems. We call this "2038 safety" issue.
> >>
> >> Currently, mktime() deals with "unsigned long" which is 2038 unsafe on 32-bit systems.
> >>
> >> As part of addressing 2038 saftey for in-kernel uses, this patch renames mktime() to
> >> mktime_unsafe(), and changes all its calling users correspondingly. The safe version
> >> of mktime() will be added in the following patch.
> >
> > This is a flag day change. We really want to avoid that. Can we please
> > add a new interface first, then convert all the existing users and
> > kill the old interface.
> >
> > If we really care we can rename it back to the old name once all that
> > has been done, but I personally do not care whether its mktime or
> > mktime64 as long as it is fixed proper.
>
> This was my bad, as I gave him guidance here. I was hoping to avoid
> doing the one-by-one function renaming dance twice, just to fix the
> function.
>
> But you're probably right, and someone will probably add a new usage
> right before this gets merged and we'll have some pain there.

It's not only that. The whole series is a purely mechanical approach
to the problem.

Rename A
Fixup some stuff
Rename B
Fixup some more stuff
Rename C
Fixup some more stuff

I completely understand why you tried to take that approach, but TBH
at the point where the "Fixup some more" started to touch the same
file again, you should have noticed that adding intermediate (old
style) timespecs is a non starter as it just introduces another level
of conversion complexity which you wanted to avoid with the
"mechanical" fixup approach in the first place.

Thanks,

tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/