forked from luck/tmp_suning_uos_patched
dm crypt: fix write endio
Fix BIO_UPTODATE test for write io. Cc: stable@kernel.org Cc: dm-crypt@saout.de Signed-off-by: Milan Broz <mbroz@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
parent
d1622e8909
commit
adfe47702c
@ -511,6 +511,9 @@ static void crypt_endio(struct bio *clone, int error)
|
|||||||
struct crypt_config *cc = io->target->private;
|
struct crypt_config *cc = io->target->private;
|
||||||
unsigned read_io = bio_data_dir(clone) == READ;
|
unsigned read_io = bio_data_dir(clone) == READ;
|
||||||
|
|
||||||
|
if (unlikely(!bio_flagged(clone, BIO_UPTODATE) && !error))
|
||||||
|
error = -EIO;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* free the processed pages
|
* free the processed pages
|
||||||
*/
|
*/
|
||||||
@ -519,10 +522,8 @@ static void crypt_endio(struct bio *clone, int error)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(!bio_flagged(clone, BIO_UPTODATE))) {
|
if (unlikely(error))
|
||||||
error = -EIO;
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
|
||||||
|
|
||||||
bio_put(clone);
|
bio_put(clone);
|
||||||
kcryptd_queue_crypt(io);
|
kcryptd_queue_crypt(io);
|
||||||
|
Loading…
Reference in New Issue
Block a user