From: Chris Mason Date: Mon, 15 Mar 2010 14:21:30 +0000 (-0400) Subject: Btrfs: don't look at bio flags after submit_bio X-Git-Tag: v2.6.34-rc4~3^2~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ff7ba3a797a8ffd5299b8477df2dca3c3ebd34e;p=platform%2Fupstream%2Fkernel-adaptation-pc.git Btrfs: don't look at bio flags after submit_bio After callling submit_bio, the bio can be freed at any time. The btrfs submission thread helper was checking the bio flags too late, which might not give the correct answer. When CONFIG_DEBUG_PAGE_ALLOC is turned on, it can lead to oopsen. Signed-off-by: Chris Mason --- diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 4053fc4..9df8e3f 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -256,13 +256,13 @@ loop_lock: wake_up(&fs_info->async_submit_wait); BUG_ON(atomic_read(&cur->bi_cnt) == 0); - submit_bio(cur->bi_rw, cur); - num_run++; - batch_run++; if (bio_rw_flagged(cur, BIO_RW_SYNCIO)) num_sync_run++; + submit_bio(cur->bi_rw, cur); + num_run++; + batch_run++; if (need_resched()) { if (num_sync_run) { blk_run_backing_dev(bdi, NULL);