tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Max. number of subdirectories dump
Hello,
I am working on a defrag tool for UFS2/FFSv2 as Google Summer of Code
Project.
The size of a directory offset is of type int32_t (see
src/sys/ufs/ufs/dir.h), which is a signed integer. So the maximum size
can be (2^31)-1.
When testing, the maximum number of subdirectories was 32767, which is
(2^15)-1, when trying to add a 32767th directory, I got the error
message: "Too many links".
When my tools reads only the single indirect blocks, it get all 32767
subdirectories.
In some Oracle documentation[1] of UFS2 says, this is the defined
maximum of subdirectories. But this is another implementation.
When studying the sourcecode of dump(8), I found out that in traverse.c
there is a function dirindir(), which iterates recursively through all
indirect blocks of directories, even through triple indirect blocks.
My question is:
Is the number of subdirectories really limited by (2^15)-1?
If, yes why does dump iterate the indirect blocks, when looking for
subdirectories?
Thanks,
Manuel
[1]
http://docs.oracle.com/cd/E18752_01/html/817-5093/fsfilesysappx-20581.html#fsfilesysappx-5
Home |
Main Index |
Thread Index |
Old Index