@@ -984,6 +984,13 @@ static noinline int replay_one_extent(struct walk_control *wc)
984984
985985 sums = list_first_entry (& ordered_sums , struct btrfs_ordered_sum , list );
986986 csum_root = btrfs_csum_root (fs_info , sums -> logical );
987+ if (unlikely (!csum_root )) {
988+ btrfs_err (fs_info ,
989+ "missing csum root for extent at bytenr %llu" ,
990+ sums -> logical );
991+ ret = - EUCLEAN ;
992+ }
993+
987994 if (!ret ) {
988995 ret = btrfs_del_csums (trans , csum_root , sums -> logical ,
989996 sums -> len );
@@ -4890,6 +4897,13 @@ static noinline int copy_items(struct btrfs_trans_handle *trans,
48904897 }
48914898
48924899 csum_root = btrfs_csum_root (trans -> fs_info , disk_bytenr );
4900+ if (unlikely (!csum_root )) {
4901+ btrfs_err (trans -> fs_info ,
4902+ "missing csum root for extent at bytenr %llu" ,
4903+ disk_bytenr );
4904+ return - EUCLEAN ;
4905+ }
4906+
48934907 disk_bytenr += extent_offset ;
48944908 ret = btrfs_lookup_csums_list (csum_root , disk_bytenr ,
48954909 disk_bytenr + extent_num_bytes - 1 ,
@@ -5086,6 +5100,13 @@ static int log_extent_csums(struct btrfs_trans_handle *trans,
50865100 /* block start is already adjusted for the file extent offset. */
50875101 block_start = btrfs_extent_map_block_start (em );
50885102 csum_root = btrfs_csum_root (trans -> fs_info , block_start );
5103+ if (unlikely (!csum_root )) {
5104+ btrfs_err (trans -> fs_info ,
5105+ "missing csum root for extent at bytenr %llu" ,
5106+ block_start );
5107+ return - EUCLEAN ;
5108+ }
5109+
50895110 ret = btrfs_lookup_csums_list (csum_root , block_start + csum_offset ,
50905111 block_start + csum_offset + csum_len - 1 ,
50915112 & ordered_sums , false);
0 commit comments