mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	FreeBSD: zfs_register_callbacks() must implement error check correctly
I read the following article and noticed a couple of ZFS bugs mentioned: https://pvs-studio.com/en/blog/posts/cpp/0377/ I decided to search for them in the modern OpenZFS codebase and then found one that matched the description of the first one: V593 Consider reviewing the expression of the 'A = B != C' kind. The expression is calculated as following: 'A = (B != C)'. zfs_vfsops.c 498 The consequence of this is that the error value is replaced with `1` when there is an error. When there is no error, 0 is correctly passed. This is a very minor issue that is unlikely to cause any real problems. The incorrect error code would either be returned to the mount command on a failure or any of `zfs receive`, `zfs recv`, `zfs rollback` or `zfs upgrade`. The second one has already been fixed. Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Damian Szuberski <szuberskidamian@gmail.com> Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Closes #14261
This commit is contained in:
		
							parent
							
								
									6af8e80310
								
							
						
					
					
						commit
						572114d846
					
				| @ -720,7 +720,7 @@ zfs_register_callbacks(vfs_t *vfsp) | |||||||
| 		nbmand = B_FALSE; | 		nbmand = B_FALSE; | ||||||
| 	} else if (vfs_optionisset(vfsp, MNTOPT_NBMAND, NULL)) { | 	} else if (vfs_optionisset(vfsp, MNTOPT_NBMAND, NULL)) { | ||||||
| 		nbmand = B_TRUE; | 		nbmand = B_TRUE; | ||||||
| 	} else if ((error = dsl_prop_get_int_ds(ds, "nbmand", &nbmand) != 0)) { | 	} else if ((error = dsl_prop_get_int_ds(ds, "nbmand", &nbmand)) != 0) { | ||||||
| 		dsl_pool_config_exit(dmu_objset_pool(os), FTAG); | 		dsl_pool_config_exit(dmu_objset_pool(os), FTAG); | ||||||
| 		return (error); | 		return (error); | ||||||
| 	} | 	} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Richard Yao
						Richard Yao