Re: any chance we could dump the 64k subdirectory limit before 2.4 ships?

From: Alexander Viro (viro@math.psu.edu)
Date: Fri May 26 2000 - 19:46:24 EST


On Sat, 27 May 2000, Hans Reiser wrote:

> ReiserFS users are complaining about it. I understand fully if you put it off
> until 2.5 though....
>
> We'll send in a patch if it will get accepted.

I'm afraid that you will find it rather hard to patch - kernel itself couldn't
care less (i_nlink can be made unsigned int - not a big deal), but you'll
have to deal with the userland. On x86 struct stat as returned by the
kernel contains 16-bit st_nlink and you'll have to
        a) add a new syscall (3 of them) to avoid breaking the old
userland.
        b) teach glibc about the new syscalls/graceful fallback to the old
ones in case you are running on the old kernel
        c) rebuild all statically linked programs.

Notice that use of old stat(2) will be rather dangerous - if you are
getting low 16 bits you are screwed, since many programs make assumptions
about the relation of st_nlink and number of subdirectories for directory
inodes. Even more will be very surpirsed seeing st_nlink==0.

So it's a work a-la 32-bit *ID one... We may need to change stat()
eventually, but we'ld better decide what's going in there and do it
_once_. As it is, we already have 3 versions of each of {f,l,}stat(), all
with slightly different field sizes - just look into fs/stat.c... Adding
one more may be needed, but we'ld better make sure that it will be the
last one.

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



This archive was generated by hypermail 2b29 : Wed May 31 2000 - 21:00:16 EST