On Mon, Sep 22, 2003 at 08:55:54AM -0500, Eric Sandeen wrote:
> Nathan recently fixed a bug where the filesystem size check was
> incorrect. It had been been checking the number of filesystem blocks,
> rather than the number of sectors in the underlying block device.
> He changed it to this:
>
> if (unlikely(
> (sbp->sb_dblocks << (__uint64_t)(sbp->sb_blocklog - BBSHIFT))
> > INT_MAX ||
> (sbp->sb_rblocks << (__uint64_t)(sbp->sb_blocklog - BBSHIFT))
> > INT_MAX)) {
> cmn_err(CE_WARN,
> "XFS: File system is too large to be mounted on this system.");
> return XFS_ERROR(E2BIG);
> }
>
> however, this restricts the size of the filesystem to 1T, or
> 2^31 * 512 bytes. This is probably safest, as it protects against
> any other drivers in the I/O path which may use a signed int for the
> sector number offset on the device.
Thanks a lot, that fixed the mount problem. :)
>
> However, if you're sure your underlying block device is 32-bit clean,
> change the INT_MAX's above to UINT_MAX in both places, and you should
> be good to go. If you still get the mount error, then your filesystem
> probably really is too big for the 32-bit kernel to handle (note that
> the 2T limit is a kernel limitation on blockdevice size, not an xfs
> limitation).
I am just at the limit with 8x 250 GB HDs in a RAID5 -> 1750 MB blockdevice.
Best regards,
Tru
--
Dr Tru Huynh | http://www.pasteur.fr/recherche/unites/Binfs/
mailto:tru@xxxxxxxxxx | tel/fax +33 1 45 68 87 37/19
Institut Pasteur, 25-28 rue du Docteur Roux, 75724 Paris CEDEX 15 France
|