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

Commit e36902d4 authored by Wang Shilong's avatar Wang Shilong Committed by Josef Bacik
Browse files

Btrfs: do not continue if out of memory happens



If out of memory happens, we should return -ENOMEM directly to the caller
rather than continue the work.

Signed-off-by: default avatarWang Shilong <wangsl-fnst@cn.fujitsu.com>
Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
parent 9c931c5a
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -352,6 +352,8 @@ static int __resolve_indirect_refs(struct btrfs_fs_info *fs_info,
		err = __resolve_indirect_ref(fs_info, search_commit_root,
					     time_seq, ref, parents,
					     extent_item_pos);
		if (err == -ENOMEM)
			goto out;
		if (err)
			continue;

@@ -367,7 +369,7 @@ static int __resolve_indirect_refs(struct btrfs_fs_info *fs_info,
			new_ref = kmalloc(sizeof(*new_ref), GFP_NOFS);
			if (!new_ref) {
				ret = -ENOMEM;
				break;
				goto out;
			}
			memcpy(new_ref, ref, sizeof(*ref));
			new_ref->parent = node->val;
@@ -377,7 +379,7 @@ static int __resolve_indirect_refs(struct btrfs_fs_info *fs_info,
		}
		ulist_reinit(parents);
	}

out:
	ulist_free(parents);
	return ret;
}