diff options
author | 2010-10-07 11:54:46 +1100 | |
---|---|---|
committer | 2010-10-07 11:54:46 +1100 | |
commit | 7571ae887d3b96d8e7ce63d43828866c6a91cdc6 (patch) | |
tree | ecdc5d71d3d957604a172c23ef9943438ccee949 /fs/jbd2/commit.c | |
parent | powerpc: remove unused variable (diff) | |
download | wireguard-linux-7571ae887d3b96d8e7ce63d43828866c6a91cdc6.tar.xz wireguard-linux-7571ae887d3b96d8e7ce63d43828866c6a91cdc6.zip |
md/raid1: avoid overflow in raid1 resync when bitmap is in use.
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 ef4256733506f245 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: "George Spelvin" <linux@horizon.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'fs/jbd2/commit.c')
0 files changed, 0 insertions, 0 deletions