mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	dedup=verify doesn't clear the blkptr's dedup flag
The logic to handle strong checksum collisions where the data doesn't match is incorrect. It is not clearing the dedup bit of the blkptr, which can cause a panic later in zio_ddt_free() due to the dedup table not matching what is in the blkptr. Reviewed-by: Tom Caputi <tcaputi@datto.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Matthew Ahrens <mahrens@delphix.com> External-issue: DLPX-48097 Closes #8936
This commit is contained in:
		
							parent
							
								
									9af524b0ee
								
							
						
					
					
						commit
						3c2a42fd25
					
				| @ -3192,7 +3192,9 @@ zio_ddt_write(zio_t *zio) | ||||
| 			BP_ZERO(bp); | ||||
| 		} else { | ||||
| 			zp->zp_dedup = B_FALSE; | ||||
| 			BP_SET_DEDUP(bp, B_FALSE); | ||||
| 		} | ||||
| 		ASSERT(!BP_GET_DEDUP(bp)); | ||||
| 		zio->io_pipeline = ZIO_WRITE_PIPELINE; | ||||
| 		ddt_exit(ddt); | ||||
| 		return (zio); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Matthew Ahrens
						Matthew Ahrens