mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	zil: Relax assertion in zil_parse
Rather than panic debug builds when we fail to parse a whole ZIL, let's instead improve the logging of errors and continue like in a release build. Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Closes #14116
This commit is contained in:
		
							parent
							
								
									186e39f336
								
							
						
					
					
						commit
						b27c7a1457
					
				| @ -397,8 +397,18 @@ zil_parse(zilog_t *zilog, zil_parse_blk_func_t *parse_blk_func, | |||||||
| 
 | 
 | ||||||
| 		error = zil_read_log_block(zilog, decrypt, &blk, &next_blk, | 		error = zil_read_log_block(zilog, decrypt, &blk, &next_blk, | ||||||
| 		    lrbuf, &end); | 		    lrbuf, &end); | ||||||
| 		if (error != 0) | 		if (error != 0) { | ||||||
|  | 			if (claimed) { | ||||||
|  | 				char name[ZFS_MAX_DATASET_NAME_LEN]; | ||||||
|  | 
 | ||||||
|  | 				dmu_objset_name(zilog->zl_os, name); | ||||||
|  | 
 | ||||||
|  | 				cmn_err(CE_WARN, "ZFS read log block error %d, " | ||||||
|  | 				    "dataset %s, seq 0x%llx\n", error, name, | ||||||
|  | 				    (u_longlong_t)blk_seq); | ||||||
|  | 			} | ||||||
| 			break; | 			break; | ||||||
|  | 		} | ||||||
| 
 | 
 | ||||||
| 		for (lrp = lrbuf; lrp < end; lrp += reclen) { | 		for (lrp = lrbuf; lrp < end; lrp += reclen) { | ||||||
| 			lr_t *lr = (lr_t *)lrp; | 			lr_t *lr = (lr_t *)lrp; | ||||||
| @ -422,10 +432,6 @@ done: | |||||||
| 	zilog->zl_parse_blk_count = blk_count; | 	zilog->zl_parse_blk_count = blk_count; | ||||||
| 	zilog->zl_parse_lr_count = lr_count; | 	zilog->zl_parse_lr_count = lr_count; | ||||||
| 
 | 
 | ||||||
| 	ASSERT(!claimed || !(zh->zh_flags & ZIL_CLAIM_LR_SEQ_VALID) || |  | ||||||
| 	    (max_blk_seq == claim_blk_seq && max_lr_seq == claim_lr_seq) || |  | ||||||
| 	    (decrypt && error == EIO)); |  | ||||||
| 
 |  | ||||||
| 	zil_bp_tree_fini(zilog); | 	zil_bp_tree_fini(zilog); | ||||||
| 	zio_buf_free(lrbuf, SPA_OLD_MAXBLOCKSIZE); | 	zio_buf_free(lrbuf, SPA_OLD_MAXBLOCKSIZE); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Ryan Moeller
						Ryan Moeller