[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#559647: aborts when making a filesystem larger than 2048 MiB



Robert Millan a écrit :
> Package: ufsutils
> Version: 7.2-3
> Severity: important
> 
> mkfs aborts when making a filesystem larger than 2048 MiB.  This
> size limit (equivalent to INT32_MAX sectors) seems to indicate that
> it's using 32-bit signed types to measure number of blocks instead
> of unsigned 64-bit.
> 

It actually aborts at 1 TiB (2^31 sectors * 512 bytes).

The problem is that ufsutils uses daddr_t to represent the block number
on the disk. This is supposed to be the "type of a disk address", but is
defined as signed 32-bit in the Linux kernel, and signed 64-bit in the
FreeBSD kernel.

The GNU libc type matches the Linux kernel type on GNU/Linux systems,
and the FreeBSD libc type also matches the FreeBSD kernel.

I have modified the GNU libc type on GNU/kFreeBSD to match the kernel
definition fixing this bug (after a rebuild) on this platform. For
GNU/Linux, we will probably have to modify ufsutils sources.

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net



Reply to: