From: Chris Mason Date: Fri, 7 Nov 2008 17:35:44 +0000 (-0500) Subject: Btrfs: make sure compressed bios don't complete too soon X-Git-Tag: v2.6.29-rc1~27^2~9^2~55^2~36 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af09abfece59aa50bfbf16f6f1f85822554e061f;p=pandora-kernel.git Btrfs: make sure compressed bios don't complete too soon When writing a compressed extent, a number of bios are created that point to a single struct compressed_bio. At end_io time an atomic counter in the compressed_bio struct makes sure that all of the bios have finished before final end_io processing is done. But when multiple bios are needed to write a compressed extent, the counter was being incremented after the first bio was sent to submit_bio. It is possible the bio will complete before the counter is incremented, making the end_io handler free the compressed_bio struct before processing is finished. The fix is to increment the atomic counter before bio submission, both for compressed reads and writes. Signed-off-by: Chris Mason --- Reading git-diff-tree failed