Linus Torvalds writes: (Summary) wrote:
The thing is, we shouldn't check the standards, we should check what we actually _do_.
we actually _do_.
And what we actually _do_ is to have a tv_nsec that is of type "long", and while we do have a
and while we do have a
timespec64_valid(const struct timespec64 *ts)
timespec64_valid(const struct timespec64 *ts)
and fs/utimes.c has a 'nsec_valid()' that apparently the utimes* family of system calls all do end up using, I'm more worried about something where we don't.
something where we don't.
Because I'm almost certain that we've had cases where we just normalize things after-the-fact.
normalize things after-the-fact.
This all likely isn't a big deal, but it does end up worrying me if we then _depend_ on that granularity thing actually giving the proper granularity even for odd inputs.
[...]
greater than or equal to 1000 million.The thing is, we shouldn't check the standards, we should check what we actually _do_.
we actually _do_.
And what we actually _do_ is to have a tv_nsec that is of type "long", and while we do have a
and while we do have a
timespec64_valid(const struct timespec64 *ts)
timespec64_valid(const struct timespec64 *ts)
and fs/utimes.c has a 'nsec_valid()' that apparently the utimes* family of system calls all do end up using, I'm more worried about something where we don't.
something where we don't.
Because I'm almost certain that we've had cases where we just normalize things after-the-fact.
normalize things after-the-fact.
This all likely isn't a big deal, but it does end up worrying me if we then _depend_ on that granularity thing actually giving the proper granularity even for odd inputs.