• NeilBrown's avatar
    md/raid1: avoid overflow in raid1 resync when bitmap is in use. · 7571ae88
    NeilBrown authored
    bitmap_start_sync returns - via a pass-by-reference variable - the
    number of sectors before we need to check with the bitmap again.
    Since commit ef425673 this number can be substantially larger,
    2^27 is a common value.
    
    Unfortunately it is an 'int' and so when raid1.c:sync_request shifts
    it 9 places to the left it becomes 0.  This results in a zero-length
    read which the scsi layer justifiably complains about.
    
    This patch just removes the shift so the common case becomes safe with
    a trivially-correct patch.
    
    In the next merge window we will convert this 'int' to a 'sector_t'
    Reported-by: default avatar"George Spelvin" <linux@horizon.com>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    7571ae88
raid1.c 62.5 KB