diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-04-12 01:01:30 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-04-12 01:01:30 -0700 |
| commit | 4fbd14380484c466338108b59fbc04062c01f1df (patch) | |
| tree | 87c2346ff4d8987efb55f47f4d45523c5590c33e /drivers/misc/ibmasm/ibmasm.h | |
| parent | dfe2c6262c7cffaa5087d6562cacbbf406594df0 (diff) | |
[PATCH] Fix Raid5/6 above 2 Terabytes
From: Evan Felix <evan.felix@pnl.gov>
Here is a patch that fixes a major issue in the raid5/6 code. It seems
that the code:
logical_sector = bi->bi_sector & ~(STRIPE_SECTORS-1);
(sector_t) = (sector_t) & (constant)
that the right side of the & does not get extended correctly when the
constant is promoted to the sector_t type. I have CONFIG_LBD turned on so
sector_t should be 64bits wide. This fails to properly mask the value of
4294967296 (2TB/512) to 4294967296. in my case it was coming out 0. this
cause the loop following this code to read from 0 to 4294967296 blocks so
it could write one character.
As you might imagine this makes a format of a 3.5TB filesystem take a very
long time.
Diffstat (limited to 'drivers/misc/ibmasm/ibmasm.h')
0 files changed, 0 insertions, 0 deletions
