ANDROID: f2fs: fix possible merge of unencrypted with encrypted I/O

f2fs_crypt_mergeable_bio() should return false when the next page will
be read/written as raw data but the pending bio will use encryption.

I'm not sure this actually fixes anything in practice, as I was unable
to reproduce this case.  But we should make this change to be safe.

Bug: 137270441
Bug: 144791323
Change-Id: Id6765c799a6c54fe1d9542d350c3e1c105dc3f60
Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
Eric Biggers 2019-12-09 09:20:00 -08:00 committed by Alistair Delva
parent 725ce554a4
commit 114c59d6d9

View file

@ -340,7 +340,7 @@ static bool f2fs_crypt_mergeable_bio(struct bio *bio, const struct inode *inode,
* read/write raw data without encryption.
*/
if (fio && fio->encrypted_page)
return true;
return !bio_has_crypt_ctx(bio);
return fscrypt_mergeable_bio(bio, inode, next_idx);
}