Growing large UFS over 16TB?

Andrey V. Elsukov bu7cher at yandex.ru
Tue Oct 12 11:07:04 UTC 2010


On 12.10.2010 0:18, Tobias Fredriksson wrote:
> I understand the reason for this, its trying to read a block and the integer just wrapped around.
> Nice. The relevant lines from growfs.c are
> 
> static void rdfs(ufs2_daddr_t bno, size_t size, void *bf, int fsi) { [...] if (bno < 0) { err(32,
> "rdfs: attempting to read negative block number"); } [...]
> 
> Just for fun I commented the if part out and recompiled. growfs: rdfs: read error:
> -4889807711788704476: Input/output error

It seems that 20T is not so big to overflow int64_t. I think it can be somewhere
is rdfs called from.
You can try to add abort(3) call to the if part and recompile with DEBUG_FLAGS=-g.
When this if statement will be triggered again growfs will drop core file and you
could inspect it with gdb. But i don't know how is is dangerous for your FS.

-- 
WBR, Andrey V. Elsukov

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20101012/03e1fb78/signature.pgp


More information about the freebsd-fs mailing list