mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Help compiller optimize out abd_verify()
While abd_verify() does nothing when built without debug, compiler can't optimize it out by itself due to calls to external list_*() and abd_verify_scatter(). This commit makes it explicit. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Adam Moss <c@yotes.com> Reviewed-by: George Melikov <mail@gmelikov.ru> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes #12280
This commit is contained in:
		
							parent
							
								
									aee26af277
								
							
						
					
					
						commit
						da6c288dfc
					
				| @ -108,15 +108,14 @@ int zfs_abd_scatter_enabled = B_TRUE; | |||||||
| void | void | ||||||
| abd_verify(abd_t *abd) | abd_verify(abd_t *abd) | ||||||
| { | { | ||||||
|  | #ifdef ZFS_DEBUG | ||||||
| 	ASSERT3U(abd->abd_size, >, 0); | 	ASSERT3U(abd->abd_size, >, 0); | ||||||
| 	ASSERT3U(abd->abd_size, <=, SPA_MAXBLOCKSIZE); | 	ASSERT3U(abd->abd_size, <=, SPA_MAXBLOCKSIZE); | ||||||
| 	ASSERT3U(abd->abd_flags, ==, abd->abd_flags & (ABD_FLAG_LINEAR | | 	ASSERT3U(abd->abd_flags, ==, abd->abd_flags & (ABD_FLAG_LINEAR | | ||||||
| 	    ABD_FLAG_OWNER | ABD_FLAG_META | ABD_FLAG_MULTI_ZONE | | 	    ABD_FLAG_OWNER | ABD_FLAG_META | ABD_FLAG_MULTI_ZONE | | ||||||
| 	    ABD_FLAG_MULTI_CHUNK | ABD_FLAG_LINEAR_PAGE | ABD_FLAG_GANG | | 	    ABD_FLAG_MULTI_CHUNK | ABD_FLAG_LINEAR_PAGE | ABD_FLAG_GANG | | ||||||
| 	    ABD_FLAG_GANG_FREE | ABD_FLAG_ZEROS | ABD_FLAG_ALLOCD)); | 	    ABD_FLAG_GANG_FREE | ABD_FLAG_ZEROS | ABD_FLAG_ALLOCD)); | ||||||
| #ifdef ZFS_DEBUG |  | ||||||
| 	IMPLY(abd->abd_parent != NULL, !(abd->abd_flags & ABD_FLAG_OWNER)); | 	IMPLY(abd->abd_parent != NULL, !(abd->abd_flags & ABD_FLAG_OWNER)); | ||||||
| #endif |  | ||||||
| 	IMPLY(abd->abd_flags & ABD_FLAG_META, abd->abd_flags & ABD_FLAG_OWNER); | 	IMPLY(abd->abd_flags & ABD_FLAG_META, abd->abd_flags & ABD_FLAG_OWNER); | ||||||
| 	if (abd_is_linear(abd)) { | 	if (abd_is_linear(abd)) { | ||||||
| 		ASSERT3P(ABD_LINEAR_BUF(abd), !=, NULL); | 		ASSERT3P(ABD_LINEAR_BUF(abd), !=, NULL); | ||||||
| @ -133,6 +132,7 @@ abd_verify(abd_t *abd) | |||||||
| 	} else { | 	} else { | ||||||
| 		abd_verify_scatter(abd); | 		abd_verify_scatter(abd); | ||||||
| 	} | 	} | ||||||
|  | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void | static void | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user