Re: [PATCH] Cleanup "fat: propagate 64-bit inode timestamps" patch

From: OGAWA Hirofumi
Date: Mon Aug 20 2018 - 18:23:41 EST


Arnd Bergmann <arnd@xxxxxxxx> writes:

>> /* Linear day numbers of the respective 1sts in non-leap years. */
>> -static time64_t days_in_year[] = {
>> +static long days_in_year[] = {
>> /* Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec */
>> 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 0, 0, 0,
>> };
>
> While this is correct, changing it back to a signed 'long' type seems
> rather arbitrary. I tried to pick a type that would be the same on 32-bit
> and 64-bit architectures, the other choice would have been 'u16',
> which saves a few bytes.

Right. However, "long long" on 32bit arch is not same. In this implement
"long long" works though, Some calculation needs libgcc helper (in
kernel, div64 stuff). I want to avoid it early than later, and I don't
care saving a few memory in here (I would not care if it was u16).

Thanks.
--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>