Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 018642a1 authored by Tsutomu Itoh's avatar Tsutomu Itoh Committed by Josef Bacik
Browse files

Btrfs: return value of btrfs_read_buffer is checked correctly



btrfs_read_buffer() has the possibility of returning the error.
Therefore, I add the code in which the return value of btrfs_read_buffer()
is checked.

Signed-off-by: default avatarTsutomu Itoh <t-itoh@jp.fujitsu.com>
parent 733f4fbb
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -739,7 +739,11 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
				if (!cur)
				if (!cur)
					return -EIO;
					return -EIO;
			} else if (!uptodate) {
			} else if (!uptodate) {
				btrfs_read_buffer(cur, gen);
				err = btrfs_read_buffer(cur, gen);
				if (err) {
					free_extent_buffer(cur);
					return err;
				}
			}
			}
		}
		}
		if (search_start == 0)
		if (search_start == 0)
+13 −3
Original line number Original line Diff line number Diff line
@@ -1628,7 +1628,9 @@ static int replay_one_buffer(struct btrfs_root *log, struct extent_buffer *eb,
	int i;
	int i;
	int ret;
	int ret;


	btrfs_read_buffer(eb, gen);
	ret = btrfs_read_buffer(eb, gen);
	if (ret)
		return ret;


	level = btrfs_header_level(eb);
	level = btrfs_header_level(eb);


@@ -1749,7 +1751,11 @@ static noinline int walk_down_log_tree(struct btrfs_trans_handle *trans,


			path->slots[*level]++;
			path->slots[*level]++;
			if (wc->free) {
			if (wc->free) {
				btrfs_read_buffer(next, ptr_gen);
				ret = btrfs_read_buffer(next, ptr_gen);
				if (ret) {
					free_extent_buffer(next);
					return ret;
				}


				btrfs_tree_lock(next);
				btrfs_tree_lock(next);
				btrfs_set_lock_blocking(next);
				btrfs_set_lock_blocking(next);
@@ -1766,7 +1772,11 @@ static noinline int walk_down_log_tree(struct btrfs_trans_handle *trans,
			free_extent_buffer(next);
			free_extent_buffer(next);
			continue;
			continue;
		}
		}
		btrfs_read_buffer(next, ptr_gen);
		ret = btrfs_read_buffer(next, ptr_gen);
		if (ret) {
			free_extent_buffer(next);
			return ret;
		}


		WARN_ON(*level <= 0);
		WARN_ON(*level <= 0);
		if (path->nodes[*level-1])
		if (path->nodes[*level-1])