relocation.c (ea68a3e9d14e9e0bf017d178fb4bd53b6deb1482) relocation.c (fdf8d595f49c79f1c47e5a91c4c6582572c5eeee)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2009 Oracle. All rights reserved.
4 */
5
6#include <linux/sched.h>
7#include <linux/pagemap.h>
8#include <linux/writeback.h>

--- 1252 unchanged lines hidden (view full) ---

1261 next_key->offset = (u64)-1;
1262 }
1263
1264 parent = eb;
1265 while (1) {
1266 level = btrfs_header_level(parent);
1267 ASSERT(level >= lowest_level);
1268
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2009 Oracle. All rights reserved.
4 */
5
6#include <linux/sched.h>
7#include <linux/pagemap.h>
8#include <linux/writeback.h>

--- 1252 unchanged lines hidden (view full) ---

1261 next_key->offset = (u64)-1;
1262 }
1263
1264 parent = eb;
1265 while (1) {
1266 level = btrfs_header_level(parent);
1267 ASSERT(level >= lowest_level);
1268
1269 ret = btrfs_bin_search(parent, &key, &slot);
1269 ret = btrfs_bin_search(parent, 0, &key, &slot);
1270 if (ret < 0)
1271 break;
1272 if (ret && slot > 0)
1273 slot--;
1274
1275 if (next_key && slot + 1 < btrfs_header_nritems(parent))
1276 btrfs_node_key_to_cpu(parent, next_key, slot + 1);
1277

--- 1124 unchanged lines hidden (view full) ---

2402 root = select_reloc_root(trans, rc, upper, edges);
2403 if (IS_ERR(root)) {
2404 ret = PTR_ERR(root);
2405 goto next;
2406 }
2407
2408 if (upper->eb && !upper->locked) {
2409 if (!lowest) {
1270 if (ret < 0)
1271 break;
1272 if (ret && slot > 0)
1273 slot--;
1274
1275 if (next_key && slot + 1 < btrfs_header_nritems(parent))
1276 btrfs_node_key_to_cpu(parent, next_key, slot + 1);
1277

--- 1124 unchanged lines hidden (view full) ---

2402 root = select_reloc_root(trans, rc, upper, edges);
2403 if (IS_ERR(root)) {
2404 ret = PTR_ERR(root);
2405 goto next;
2406 }
2407
2408 if (upper->eb && !upper->locked) {
2409 if (!lowest) {
2410 ret = btrfs_bin_search(upper->eb, key, &slot);
2410 ret = btrfs_bin_search(upper->eb, 0, key, &slot);
2411 if (ret < 0)
2412 goto next;
2413 BUG_ON(ret);
2414 bytenr = btrfs_node_blockptr(upper->eb, slot);
2415 if (node->eb->start == bytenr)
2416 goto next;
2417 }
2418 btrfs_backref_drop_node_buffer(upper);

--- 17 unchanged lines hidden (view full) ---

2436 }
2437
2438 upper->locked = 1;
2439 path->locks[upper->level] = 0;
2440
2441 slot = path->slots[upper->level];
2442 btrfs_release_path(path);
2443 } else {
2411 if (ret < 0)
2412 goto next;
2413 BUG_ON(ret);
2414 bytenr = btrfs_node_blockptr(upper->eb, slot);
2415 if (node->eb->start == bytenr)
2416 goto next;
2417 }
2418 btrfs_backref_drop_node_buffer(upper);

--- 17 unchanged lines hidden (view full) ---

2436 }
2437
2438 upper->locked = 1;
2439 path->locks[upper->level] = 0;
2440
2441 slot = path->slots[upper->level];
2442 btrfs_release_path(path);
2443 } else {
2444 ret = btrfs_bin_search(upper->eb, key, &slot);
2444 ret = btrfs_bin_search(upper->eb, 0, key, &slot);
2445 if (ret < 0)
2446 goto next;
2447 BUG_ON(ret);
2448 }
2449
2450 bytenr = btrfs_node_blockptr(upper->eb, slot);
2451 if (lowest) {
2452 if (bytenr != node->bytenr) {

--- 2073 unchanged lines hidden ---
2445 if (ret < 0)
2446 goto next;
2447 BUG_ON(ret);
2448 }
2449
2450 bytenr = btrfs_node_blockptr(upper->eb, slot);
2451 if (lowest) {
2452 if (bytenr != node->bytenr) {

--- 2073 unchanged lines hidden ---