mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	dmu_tx: make DMU_TX_* flags an enum
Mostly for a little more type checking and debugging visibility. Sponsored-by: Klara, Inc. Sponsored-by: Wasabi Technology, Inc. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Paul Dagnelie <paul.dagnelie@klarasystems.com> Signed-off-by: Rob Norris <rob.norris@klarasystems.com> Closes #17355
This commit is contained in:
		
							parent
							
								
									468d22d60c
								
							
						
					
					
						commit
						ac2e579521
					
				| @ -281,9 +281,24 @@ typedef enum dmu_object_type { | |||||||
|  * the transaction is full. See the comment above dmu_tx_assign() for more |  * the transaction is full. See the comment above dmu_tx_assign() for more | ||||||
|  * details on the meaning of these flags. |  * details on the meaning of these flags. | ||||||
|  */ |  */ | ||||||
| #define	DMU_TX_NOWAIT		(0ULL) | typedef enum { | ||||||
| #define	DMU_TX_WAIT		(1ULL<<0) | 	/*
 | ||||||
| #define	DMU_TX_NOTHROTTLE	(1ULL<<1) | 	 * If the tx cannot be assigned to a transaction for any reason, do | ||||||
|  | 	 * not block but return immediately. | ||||||
|  | 	 */ | ||||||
|  | 	DMU_TX_NOWAIT		= 0, | ||||||
|  | 
 | ||||||
|  | 	/*
 | ||||||
|  | 	 * Assign the tx to the open transaction. If the open transaction is | ||||||
|  | 	 * full, or the write throttle is active, block until the next | ||||||
|  | 	 * transaction and try again. If the pool suspends while waiting, | ||||||
|  | 	 * return an error. | ||||||
|  | 	 */ | ||||||
|  | 	DMU_TX_WAIT		= (1 << 0), | ||||||
|  | 
 | ||||||
|  | 	/* If the write throttle would prevent the assignment, ignore it. */ | ||||||
|  | 	DMU_TX_NOTHROTTLE	= (1 << 1), | ||||||
|  | } dmu_tx_flag_t; | ||||||
| 
 | 
 | ||||||
| void byteswap_uint64_array(void *buf, size_t size); | void byteswap_uint64_array(void *buf, size_t size); | ||||||
| void byteswap_uint32_array(void *buf, size_t size); | void byteswap_uint32_array(void *buf, size_t size); | ||||||
| @ -849,7 +864,7 @@ void dmu_tx_hold_spill(dmu_tx_t *tx, uint64_t object); | |||||||
| void dmu_tx_hold_sa(dmu_tx_t *tx, struct sa_handle *hdl, boolean_t may_grow); | void dmu_tx_hold_sa(dmu_tx_t *tx, struct sa_handle *hdl, boolean_t may_grow); | ||||||
| void dmu_tx_hold_sa_create(dmu_tx_t *tx, int total_size); | void dmu_tx_hold_sa_create(dmu_tx_t *tx, int total_size); | ||||||
| void dmu_tx_abort(dmu_tx_t *tx); | void dmu_tx_abort(dmu_tx_t *tx); | ||||||
| int dmu_tx_assign(dmu_tx_t *tx, uint64_t flags); | int dmu_tx_assign(dmu_tx_t *tx, dmu_tx_flag_t flags); | ||||||
| void dmu_tx_wait(dmu_tx_t *tx); | void dmu_tx_wait(dmu_tx_t *tx); | ||||||
| void dmu_tx_commit(dmu_tx_t *tx); | void dmu_tx_commit(dmu_tx_t *tx); | ||||||
| void dmu_tx_mark_netfree(dmu_tx_t *tx); | void dmu_tx_mark_netfree(dmu_tx_t *tx); | ||||||
|  | |||||||
| @ -143,7 +143,7 @@ extern dmu_tx_stats_t dmu_tx_stats; | |||||||
|  * These routines are defined in dmu.h, and are called by the user. |  * These routines are defined in dmu.h, and are called by the user. | ||||||
|  */ |  */ | ||||||
| dmu_tx_t *dmu_tx_create(objset_t *dd); | dmu_tx_t *dmu_tx_create(objset_t *dd); | ||||||
| int dmu_tx_assign(dmu_tx_t *tx, uint64_t txg_how); | int dmu_tx_assign(dmu_tx_t *tx, dmu_tx_flag_t flags); | ||||||
| void dmu_tx_commit(dmu_tx_t *tx); | void dmu_tx_commit(dmu_tx_t *tx); | ||||||
| void dmu_tx_abort(dmu_tx_t *tx); | void dmu_tx_abort(dmu_tx_t *tx); | ||||||
| uint64_t dmu_tx_get_txg(dmu_tx_t *tx); | uint64_t dmu_tx_get_txg(dmu_tx_t *tx); | ||||||
|  | |||||||
| @ -1201,7 +1201,7 @@ dmu_tx_unassign(dmu_tx_t *tx) | |||||||
|  *     1 <- dmu_tx_get_txg(T3) |  *     1 <- dmu_tx_get_txg(T3) | ||||||
|  */ |  */ | ||||||
| int | int | ||||||
| dmu_tx_assign(dmu_tx_t *tx, uint64_t flags) | dmu_tx_assign(dmu_tx_t *tx, dmu_tx_flag_t flags) | ||||||
| { | { | ||||||
| 	int err; | 	int err; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Rob Norris
						Rob Norris