qcow2: Set request_alignment during .bdrv_refresh_limits()
We want to eventually stick request_alignment alongside other BlockLimits, but first, we must ensure it is populated at the same time as all other limits, rather than being a special case that is set only when a block is first opened. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									c8b3b998e2
								
							
						
					
					
						commit
						a84178ccff
					
				|  | @ -981,9 +981,6 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags, | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         bs->encrypted = 1; |         bs->encrypted = 1; | ||||||
| 
 |  | ||||||
|         /* Encryption works on a sector granularity */ |  | ||||||
|         bs->request_alignment = BDRV_SECTOR_SIZE; |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     s->l2_bits = s->cluster_bits - 3; /* L2 is always one cluster */ |     s->l2_bits = s->cluster_bits - 3; /* L2 is always one cluster */ | ||||||
|  | @ -1202,6 +1199,10 @@ static void qcow2_refresh_limits(BlockDriverState *bs, Error **errp) | ||||||
| { | { | ||||||
|     BDRVQcow2State *s = bs->opaque; |     BDRVQcow2State *s = bs->opaque; | ||||||
| 
 | 
 | ||||||
|  |     if (bs->encrypted) { | ||||||
|  |         /* Encryption works on a sector granularity */ | ||||||
|  |         bs->request_alignment = BDRV_SECTOR_SIZE; | ||||||
|  |     } | ||||||
|     bs->bl.pwrite_zeroes_alignment = s->cluster_size; |     bs->bl.pwrite_zeroes_alignment = s->cluster_size; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Eric Blake
						Eric Blake