Commit 96c17710 authored by Alexander Viro's avatar Alexander Viro Committed by Linus Torvalds

[PATCH] loop breakage fix

Got it.  Breakage happened when Jens was switching to partial
completions - !uptodate is not quite the same as !err ;-)

With this fixed everything seems to work nicely.
parent d488b0d4
...@@ -437,7 +437,7 @@ static int loop_end_io_transfer(struct bio *bio, unsigned int bytes_done, int er ...@@ -437,7 +437,7 @@ static int loop_end_io_transfer(struct bio *bio, unsigned int bytes_done, int er
if (bio->bi_size) if (bio->bi_size)
return 1; return 1;
if (!err || bio_rw(bio) == WRITE) { if (err || bio_rw(bio) == WRITE) {
bio_endio(rbh, rbh->bi_size, err); bio_endio(rbh, rbh->bi_size, err);
if (atomic_dec_and_test(&lo->lo_pending)) if (atomic_dec_and_test(&lo->lo_pending))
up(&lo->lo_bh_mutex); up(&lo->lo_bh_mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment