md: fix loading of out-of-date bitmap.
authorNeilBrown <neilb@suse.de>
Thu, 7 May 2009 02:47:19 +0000 (12:47 +1000)
committerNeilBrown <neilb@suse.de>
Thu, 7 May 2009 02:47:19 +0000 (12:47 +1000)
commitb74fd2826c5acce20e6f691437b2d19372bc2057
tree818e1fa7a7f91b1ca37279f19ce215f19256d7f0
parentb4348f32dae3cb6eb4bc21c7ed8f76c0b11e9d6a
md: fix loading of out-of-date bitmap.

When md is loading a bitmap which it knows is out of date, it fills
each page with 1s and writes it back out again.  However the
write_page call makes used of bitmap->file_pages and
bitmap->last_page_size which haven't been set correctly yet.  So this
can sometimes fail.

Move the setting of file_pages and last_page_size to before the call
to write_page.

This bug can cause the assembly on an array to fail, thus making the
data inaccessible.  Hence I think it is a suitable candidate for
-stable.

Cc: stable@kernel.org
Reported-by: Vojtech Pavlik <vojtech@suse.cz>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/bitmap.c