zfs and st_nlink limit at 32767

Steven Hartland killing at multiplay.co.uk
Sat Mar 5 21:24:56 UTC 2016


Correct stat st_nlink is a nlink_t which is defined as uint16_t, its not 
clear why its clamping at what looks like int16_t max.

It looks like the kernel version in nstat is a uint32_t so internally it 
should be correct.

You may have some joy changing it to uint32_t but is likely everything 
will rebuilding and even then there may be some edge cases which break 
one that sticks out is linux compat support which doesn't use nlink_t.

     Regards
     Steve

On 05/03/2016 19:46, Nagy, Attila wrote:
> Hi,
>
> If I create a million hard links to a file, stat -s says it has 32767:
> $ stat -s 900402.24.t
> st_dev=1709683738 st_ino=719745 st_mode=0100644 st_nlink=32767 
> st_uid=1001 st_gid=0 st_rdev=4294967295 st_size=81688 
> st_atime=1455881393 st_mtime=1455881393 st_ctime=1457206643 
> st_birthtime=1457206536 st_blksize=81920 st_blocks=67 st_flags=2048
>
> Is this a limitation somewhere which is hard to remove, or just an 
> easily fixable "legacy" from the times, when all filesystems contained 
> this limit?
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"



More information about the freebsd-fs mailing list