Robert P. J. Day wrote:
> On Tue, 29 May 2007, Randy Dunlap wrote:
>
>> On Tue, 29 May 2007 14:07:01 -0400 (EDT) Robert P. J. Day wrote:
>>
>>> On Tue, 29 May 2007, Andrew Morton wrote:
>>>
>>>> kernel/sysctl.c:
>>>>
>>>> {
>>>> .ctl_name = FS_STATINODE,
>>>> .procname = "inode-state",
>>>> .data = &inodes_stat,
>>>> .maxlen = 7*sizeof(int), <-----
>>>> .mode = 0444,
>>>> .proc_handler = &proc_dointvec,
>>>> },
>>>>
>>>> akpm:/home/akpm> cat /proc/sys/fs/inode-state
>>>> 608039 178454 0 0 0 0 0
>>>>
>>>> So it _is_ used: to present those five zeroes. I think this is
>>>> for back-compatibility with some cretaceous-era kernel.
>>> ah, gotcha. well, i'll leave this up to someone else to do
>>> anything with if they are so inclined.
>> There's little to be done, except possibly put a /* comment */ on
>> the struct's dummy line so that we don't go thru this again in N
>> years.
>
> so, just to clarify, what *is* the value of those trailing five
> zeroes? andrew suggests it's to be backward-compatible with an old
> kernel, which doesn't make much sense to me. it would make more sense
> to say that that's backward-compatible with some old userspace app
> that always wants to see seven values and just ignores the last five.
Agreed, it's for compat with some (unknown) userspace app that reads
/proc/sys/fs/inode-state and scans for 7 (or more than 2) numbers there.
The mantra is "don't break userspace," so we leave the numbers there...