[dm-devel] 2 TB wraparound on 32 bit host
James Bottomley
James.Bottomley at HansenPartnership.com
Sat Jun 12 16:03:18 UTC 2010
On Sat, 2010-06-12 at 11:45 -0400, Phillip Susi wrote:
> On 06/11/2010 05:16 PM, James Bottomley wrote:
> > So best guess is that CONFIG_LBDAF isn't set. This would make all
> > sector_t counts wrap at 2TB (32 bits worth of 512 bytes). It would be
> > rather a daft thing for a distribution not to have set, though ...
>
> Bingo, thanks. It doesn't seem to be set on this machine running the
> amd64 2.6.32 lucid build which also appears to suffer the same problem.
So is this a default kernel or did you build your own ... because if
it's a vanilla ubuntu kernel, not setting this config option would be
pretty embarrassing (not to mention annoy a lot of users)?
> If this config option isn't set though, shouldn't the kernel fail
> calls like llseek() that try to exceed the limit, rather than silently
> wrap around to the wrong address?
Not really ... it's defaulted to y; only people who know what they're
doing should set it to N. These people are mostly embedded and will
never connect > 2TB devices to their system, so checking is a waste of
time and space for them. Plus making the checks exhaustive and
foolproof is just about impossible given that we alter the underlying
size of sector_t and wrap around without warning is the C default.
James
More information about the dm-devel
mailing list