mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	dm crypt: leverage immutable biovecs when decrypting on read
Commit 003b5c571 ("block: Convert drivers to immutable biovecs")
stopped short of changing dm-crypt to leverage the fact that the biovec
array of a bio will no longer be modified.
Switch to using bio_clone_fast() when cloning bios for decryption after
read.
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									e44f23b32d
								
							
						
					
					
						commit
						5977907937
					
				
					 1 changed files with 5 additions and 5 deletions
				
			
		|  | @ -1124,15 +1124,15 @@ static void clone_init(struct dm_crypt_io *io, struct bio *clone) | |||
| static int kcryptd_io_read(struct dm_crypt_io *io, gfp_t gfp) | ||||
| { | ||||
| 	struct crypt_config *cc = io->cc; | ||||
| 	struct bio *base_bio = io->base_bio; | ||||
| 	struct bio *clone; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * The block layer might modify the bvec array, so always | ||||
| 	 * copy the required bvecs because we need the original | ||||
| 	 * one in order to decrypt the whole bio data *afterwards*. | ||||
| 	 * We need the original biovec array in order to decrypt | ||||
| 	 * the whole bio data *afterwards* -- thanks to immutable | ||||
| 	 * biovecs we don't need to worry about the block layer | ||||
| 	 * modifying the biovec array; so leverage bio_clone_fast(). | ||||
| 	 */ | ||||
| 	clone = bio_clone_bioset(base_bio, gfp, cc->bs); | ||||
| 	clone = bio_clone_fast(io->base_bio, gfp, cc->bs); | ||||
| 	if (!clone) | ||||
| 		return 1; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Mike Snitzer
						Mike Snitzer