block: add BlockLimits structure to BlockDriverState
this patch adds BlockLimits which introduces discard and write_zeroes limits and alignment information to the BlockDriverState. Signed-off-by: Peter Lieven <pl@kamp.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
		
							parent
							
								
									186d4f2b1d
								
							
						
					
					
						commit
						fe81c2cca6
					
				@ -230,6 +230,20 @@ struct BlockDriver {
 | 
				
			|||||||
    QLIST_ENTRY(BlockDriver) list;
 | 
					    QLIST_ENTRY(BlockDriver) list;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct BlockLimits {
 | 
				
			||||||
 | 
					    /* maximum number of sectors that can be discarded at once */
 | 
				
			||||||
 | 
					    int max_discard;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* optimal alignment for discard requests in sectors */
 | 
				
			||||||
 | 
					    int64_t discard_alignment;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* maximum number of sectors that can zeroized at once */
 | 
				
			||||||
 | 
					    int max_write_zeroes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* optimal alignment for write zeroes requests in sectors */
 | 
				
			||||||
 | 
					    int64_t write_zeroes_alignment;
 | 
				
			||||||
 | 
					} BlockLimits;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Note: the function bdrv_append() copies and swaps contents of
 | 
					 * Note: the function bdrv_append() copies and swaps contents of
 | 
				
			||||||
 * BlockDriverStates, so if you add new fields to this struct, please
 | 
					 * BlockDriverStates, so if you add new fields to this struct, please
 | 
				
			||||||
@ -283,6 +297,9 @@ struct BlockDriverState {
 | 
				
			|||||||
    uint64_t total_time_ns[BDRV_MAX_IOTYPE];
 | 
					    uint64_t total_time_ns[BDRV_MAX_IOTYPE];
 | 
				
			||||||
    uint64_t wr_highest_sector;
 | 
					    uint64_t wr_highest_sector;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* I/O Limits */
 | 
				
			||||||
 | 
					    BlockLimits bl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Whether the disk can expand beyond total_sectors */
 | 
					    /* Whether the disk can expand beyond total_sectors */
 | 
				
			||||||
    int growable;
 | 
					    int growable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user