X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=fs%2Fdirect-io.c;h=01171d8a6ee94fea8ad7ff02015426ad156b3197;hb=802ee8a48927eef439af92973a0f17ed3590950d;hp=1c75a3a07f8f02a2ddd3b85e02c74866ff5b1f08;hpb=f61e2eebc7c572723cef1742bc7e99ac6cffe192;p=firefly-linux-kernel-4.4.55.git diff --git a/fs/direct-io.c b/fs/direct-io.c index 1c75a3a07f8f..01171d8a6ee9 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -472,8 +472,8 @@ static int dio_bio_complete(struct dio *dio, struct bio *bio) dio->io_error = -EIO; if (dio->is_async && dio->rw == READ && dio->should_dirty) { - bio_check_pages_dirty(bio); /* transfers ownership */ err = bio->bi_error; + bio_check_pages_dirty(bio); /* transfers ownership */ } else { bio_for_each_segment_all(bvec, bio, i) { struct page *page = bvec->bv_page; @@ -1175,6 +1175,7 @@ do_blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, if (dio->flags & DIO_LOCKING) mutex_unlock(&inode->i_mutex); kmem_cache_free(dio_cache, dio); + retval = 0; goto out; }