BlockLimits: introduce max_transfer_length
Signed-off-by: Peter Lieven <pl@kamp.de> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
		
							parent
							
								
									ac3a872664
								
							
						
					
					
						commit
						2647fab57d
					
				
							
								
								
									
										4
									
								
								block.c
								
								
								
								
							
							
						
						
									
										4
									
								
								block.c
								
								
								
								
							| 
						 | 
				
			
			@ -519,6 +519,7 @@ void bdrv_refresh_limits(BlockDriverState *bs, Error **errp)
 | 
			
		|||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        bs->bl.opt_transfer_length = bs->file->bl.opt_transfer_length;
 | 
			
		||||
        bs->bl.max_transfer_length = bs->file->bl.max_transfer_length;
 | 
			
		||||
        bs->bl.opt_mem_alignment = bs->file->bl.opt_mem_alignment;
 | 
			
		||||
    } else {
 | 
			
		||||
        bs->bl.opt_mem_alignment = 512;
 | 
			
		||||
| 
						 | 
				
			
			@ -533,6 +534,9 @@ void bdrv_refresh_limits(BlockDriverState *bs, Error **errp)
 | 
			
		|||
        bs->bl.opt_transfer_length =
 | 
			
		||||
            MAX(bs->bl.opt_transfer_length,
 | 
			
		||||
                bs->backing_hd->bl.opt_transfer_length);
 | 
			
		||||
        bs->bl.max_transfer_length =
 | 
			
		||||
            MIN_NON_ZERO(bs->bl.max_transfer_length,
 | 
			
		||||
                         bs->backing_hd->bl.max_transfer_length);
 | 
			
		||||
        bs->bl.opt_mem_alignment =
 | 
			
		||||
            MAX(bs->bl.opt_mem_alignment,
 | 
			
		||||
                bs->backing_hd->bl.opt_mem_alignment);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -289,6 +289,9 @@ typedef struct BlockLimits {
 | 
			
		|||
    /* optimal transfer length in sectors */
 | 
			
		||||
    int opt_transfer_length;
 | 
			
		||||
 | 
			
		||||
    /* maximal transfer length in sectors */
 | 
			
		||||
    int max_transfer_length;
 | 
			
		||||
 | 
			
		||||
    /* memory alignment so that no bounce buffer is needed */
 | 
			
		||||
    size_t opt_mem_alignment;
 | 
			
		||||
} BlockLimits;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue