]> git.karo-electronics.de Git - karo-tx-linux.git/commit
md_make_request: don't touch the bio after calling make_request
authorChris Mason <chris.mason@oracle.com>
Tue, 8 Feb 2011 00:21:48 +0000 (19:21 -0500)
committerNeilBrown <neilb@suse.de>
Mon, 7 Feb 2011 22:53:28 +0000 (09:53 +1100)
commite91ece5590b3c728624ab57043fc7a05069c604a
tree4c5fd4ad374caf5bd9c5f575b0a228b5cdf2f191
parentc6751b2bde477f56ceef67aa1d298ce44e8e2e23
md_make_request: don't touch the bio after calling make_request

md_make_request was calling bio_sectors() for part_stat_add
after it was calling the make_request function.  This is
bad because the make_request function can free the bio and
because the bi_size field can change around.

The fix here was suggested by Jens Axboe.  It saves the
sector count before the make_request call.  I hit this
with CONFIG_DEBUG_PAGEALLOC turned on while trying to break
his pretty fusionio card.

Cc: <stable@kernel.org>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c