aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2010-12-08 23:59:01 -0500
committerNeilBrown <neilb@suse.de>2010-12-08 23:59:01 -0500
commit2b74e12e567feb4163e32815bce0be57489e73b9 (patch)
tree2eef8f977209a7e5ff88b4366bd72ccf59c8a987 /drivers
parentbe20e6c67b6c6024c19094d3447f144d118733b0 (diff)
md: remove handling of flush_pending in md_submit_flush_data
None of the functions called between setting flush_pending to 1, and atomic_dec_and_test can change flush_pending, or will anything running in any other thread (as ->flush_bio is not NULL). So the atomic_dec_and_test will always succeed. So remove the atomic_sec and the atomic_dec_and_test. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/md/md.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 84c46a161927..83b6cb3e7025 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -404,8 +404,6 @@ static void md_submit_flush_data(struct work_struct *ws)
404 mddev_t *mddev = container_of(ws, mddev_t, flush_work); 404 mddev_t *mddev = container_of(ws, mddev_t, flush_work);
405 struct bio *bio = mddev->flush_bio; 405 struct bio *bio = mddev->flush_bio;
406 406
407 atomic_set(&mddev->flush_pending, 1);
408
409 if (bio->bi_size == 0) 407 if (bio->bi_size == 0)
410 /* an empty barrier - all done */ 408 /* an empty barrier - all done */
411 bio_endio(bio, 0); 409 bio_endio(bio, 0);
@@ -414,10 +412,9 @@ static void md_submit_flush_data(struct work_struct *ws)
414 if (mddev->pers->make_request(mddev, bio)) 412 if (mddev->pers->make_request(mddev, bio))
415 generic_make_request(bio); 413 generic_make_request(bio);
416 } 414 }
417 if (atomic_dec_and_test(&mddev->flush_pending)) { 415
418 mddev->flush_bio = NULL; 416 mddev->flush_bio = NULL;
419 wake_up(&mddev->sb_wait); 417 wake_up(&mddev->sb_wait);
420 }
421} 418}
422 419
423void md_flush_request(mddev_t *mddev, struct bio *bio) 420void md_flush_request(mddev_t *mddev, struct bio *bio)