• Andrew Morton's avatar
    [PATCH] Fix Raid5/6 above 2 Terabytes · 4fbd1438
    Andrew Morton authored
    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.
    4fbd1438
raid6main.c 55.4 KB