diff options
Diffstat (limited to 'fs/btrfs/tree-log.c')
-rw-r--r-- | fs/btrfs/tree-log.c | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 183913bac14..a794b9f6013 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c | |||
@@ -333,13 +333,13 @@ static noinline int overwrite_item(struct btrfs_trans_handle *trans, | |||
333 | goto insert; | 333 | goto insert; |
334 | 334 | ||
335 | if (item_size == 0) { | 335 | if (item_size == 0) { |
336 | btrfs_release_path(root, path); | 336 | btrfs_release_path(path); |
337 | return 0; | 337 | return 0; |
338 | } | 338 | } |
339 | dst_copy = kmalloc(item_size, GFP_NOFS); | 339 | dst_copy = kmalloc(item_size, GFP_NOFS); |
340 | src_copy = kmalloc(item_size, GFP_NOFS); | 340 | src_copy = kmalloc(item_size, GFP_NOFS); |
341 | if (!dst_copy || !src_copy) { | 341 | if (!dst_copy || !src_copy) { |
342 | btrfs_release_path(root, path); | 342 | btrfs_release_path(path); |
343 | kfree(dst_copy); | 343 | kfree(dst_copy); |
344 | kfree(src_copy); | 344 | kfree(src_copy); |
345 | return -ENOMEM; | 345 | return -ENOMEM; |
@@ -361,13 +361,13 @@ static noinline int overwrite_item(struct btrfs_trans_handle *trans, | |||
361 | * sync | 361 | * sync |
362 | */ | 362 | */ |
363 | if (ret == 0) { | 363 | if (ret == 0) { |
364 | btrfs_release_path(root, path); | 364 | btrfs_release_path(path); |
365 | return 0; | 365 | return 0; |
366 | } | 366 | } |
367 | 367 | ||
368 | } | 368 | } |
369 | insert: | 369 | insert: |
370 | btrfs_release_path(root, path); | 370 | btrfs_release_path(path); |
371 | /* try to insert the key into the destination tree */ | 371 | /* try to insert the key into the destination tree */ |
372 | ret = btrfs_insert_empty_item(trans, root, path, | 372 | ret = btrfs_insert_empty_item(trans, root, path, |
373 | key, item_size); | 373 | key, item_size); |
@@ -438,7 +438,7 @@ insert: | |||
438 | } | 438 | } |
439 | no_copy: | 439 | no_copy: |
440 | btrfs_mark_buffer_dirty(path->nodes[0]); | 440 | btrfs_mark_buffer_dirty(path->nodes[0]); |
441 | btrfs_release_path(root, path); | 441 | btrfs_release_path(path); |
442 | return 0; | 442 | return 0; |
443 | } | 443 | } |
444 | 444 | ||
@@ -544,11 +544,11 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans, | |||
544 | * we don't have to do anything | 544 | * we don't have to do anything |
545 | */ | 545 | */ |
546 | if (memcmp(&cmp1, &cmp2, sizeof(cmp1)) == 0) { | 546 | if (memcmp(&cmp1, &cmp2, sizeof(cmp1)) == 0) { |
547 | btrfs_release_path(root, path); | 547 | btrfs_release_path(path); |
548 | goto out; | 548 | goto out; |
549 | } | 549 | } |
550 | } | 550 | } |
551 | btrfs_release_path(root, path); | 551 | btrfs_release_path(path); |
552 | 552 | ||
553 | saved_nbytes = inode_get_bytes(inode); | 553 | saved_nbytes = inode_get_bytes(inode); |
554 | /* drop any overlapping extents */ | 554 | /* drop any overlapping extents */ |
@@ -600,7 +600,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans, | |||
600 | key->objectid, offset, &ins); | 600 | key->objectid, offset, &ins); |
601 | BUG_ON(ret); | 601 | BUG_ON(ret); |
602 | } | 602 | } |
603 | btrfs_release_path(root, path); | 603 | btrfs_release_path(path); |
604 | 604 | ||
605 | if (btrfs_file_extent_compression(eb, item)) { | 605 | if (btrfs_file_extent_compression(eb, item)) { |
606 | csum_start = ins.objectid; | 606 | csum_start = ins.objectid; |
@@ -629,7 +629,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans, | |||
629 | kfree(sums); | 629 | kfree(sums); |
630 | } | 630 | } |
631 | } else { | 631 | } else { |
632 | btrfs_release_path(root, path); | 632 | btrfs_release_path(path); |
633 | } | 633 | } |
634 | } else if (found_type == BTRFS_FILE_EXTENT_INLINE) { | 634 | } else if (found_type == BTRFS_FILE_EXTENT_INLINE) { |
635 | /* inline extents are easy, we just overwrite them */ | 635 | /* inline extents are easy, we just overwrite them */ |
@@ -675,7 +675,7 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans, | |||
675 | return -ENOMEM; | 675 | return -ENOMEM; |
676 | 676 | ||
677 | read_extent_buffer(leaf, name, (unsigned long)(di + 1), name_len); | 677 | read_extent_buffer(leaf, name, (unsigned long)(di + 1), name_len); |
678 | btrfs_release_path(root, path); | 678 | btrfs_release_path(path); |
679 | 679 | ||
680 | inode = read_one_inode(root, location.objectid); | 680 | inode = read_one_inode(root, location.objectid); |
681 | BUG_ON(!inode); | 681 | BUG_ON(!inode); |
@@ -713,7 +713,7 @@ static noinline int inode_in_dir(struct btrfs_root *root, | |||
713 | goto out; | 713 | goto out; |
714 | } else | 714 | } else |
715 | goto out; | 715 | goto out; |
716 | btrfs_release_path(root, path); | 716 | btrfs_release_path(path); |
717 | 717 | ||
718 | di = btrfs_lookup_dir_item(NULL, root, path, dirid, name, name_len, 0); | 718 | di = btrfs_lookup_dir_item(NULL, root, path, dirid, name, name_len, 0); |
719 | if (di && !IS_ERR(di)) { | 719 | if (di && !IS_ERR(di)) { |
@@ -724,7 +724,7 @@ static noinline int inode_in_dir(struct btrfs_root *root, | |||
724 | goto out; | 724 | goto out; |
725 | match = 1; | 725 | match = 1; |
726 | out: | 726 | out: |
727 | btrfs_release_path(root, path); | 727 | btrfs_release_path(path); |
728 | return match; | 728 | return match; |
729 | } | 729 | } |
730 | 730 | ||
@@ -884,7 +884,7 @@ again: | |||
884 | if (!backref_in_log(log, key, victim_name, | 884 | if (!backref_in_log(log, key, victim_name, |
885 | victim_name_len)) { | 885 | victim_name_len)) { |
886 | btrfs_inc_nlink(inode); | 886 | btrfs_inc_nlink(inode); |
887 | btrfs_release_path(root, path); | 887 | btrfs_release_path(path); |
888 | 888 | ||
889 | ret = btrfs_unlink_inode(trans, root, dir, | 889 | ret = btrfs_unlink_inode(trans, root, dir, |
890 | inode, victim_name, | 890 | inode, victim_name, |
@@ -901,7 +901,7 @@ again: | |||
901 | */ | 901 | */ |
902 | search_done = 1; | 902 | search_done = 1; |
903 | } | 903 | } |
904 | btrfs_release_path(root, path); | 904 | btrfs_release_path(path); |
905 | 905 | ||
906 | insert: | 906 | insert: |
907 | /* insert our name */ | 907 | /* insert our name */ |
@@ -922,7 +922,7 @@ out: | |||
922 | BUG_ON(ret); | 922 | BUG_ON(ret); |
923 | 923 | ||
924 | out_nowrite: | 924 | out_nowrite: |
925 | btrfs_release_path(root, path); | 925 | btrfs_release_path(path); |
926 | iput(dir); | 926 | iput(dir); |
927 | iput(inode); | 927 | iput(inode); |
928 | return 0; | 928 | return 0; |
@@ -1000,9 +1000,9 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans, | |||
1000 | if (key.offset == 0) | 1000 | if (key.offset == 0) |
1001 | break; | 1001 | break; |
1002 | key.offset--; | 1002 | key.offset--; |
1003 | btrfs_release_path(root, path); | 1003 | btrfs_release_path(path); |
1004 | } | 1004 | } |
1005 | btrfs_release_path(root, path); | 1005 | btrfs_release_path(path); |
1006 | if (nlink != inode->i_nlink) { | 1006 | if (nlink != inode->i_nlink) { |
1007 | inode->i_nlink = nlink; | 1007 | inode->i_nlink = nlink; |
1008 | btrfs_update_inode(trans, root, inode); | 1008 | btrfs_update_inode(trans, root, inode); |
@@ -1053,7 +1053,7 @@ static noinline int fixup_inode_link_counts(struct btrfs_trans_handle *trans, | |||
1053 | ret = btrfs_del_item(trans, root, path); | 1053 | ret = btrfs_del_item(trans, root, path); |
1054 | BUG_ON(ret); | 1054 | BUG_ON(ret); |
1055 | 1055 | ||
1056 | btrfs_release_path(root, path); | 1056 | btrfs_release_path(path); |
1057 | inode = read_one_inode(root, key.offset); | 1057 | inode = read_one_inode(root, key.offset); |
1058 | BUG_ON(!inode); | 1058 | BUG_ON(!inode); |
1059 | 1059 | ||
@@ -1069,7 +1069,7 @@ static noinline int fixup_inode_link_counts(struct btrfs_trans_handle *trans, | |||
1069 | */ | 1069 | */ |
1070 | key.offset = (u64)-1; | 1070 | key.offset = (u64)-1; |
1071 | } | 1071 | } |
1072 | btrfs_release_path(root, path); | 1072 | btrfs_release_path(path); |
1073 | return 0; | 1073 | return 0; |
1074 | } | 1074 | } |
1075 | 1075 | ||
@@ -1097,7 +1097,7 @@ static noinline int link_to_fixup_dir(struct btrfs_trans_handle *trans, | |||
1097 | 1097 | ||
1098 | ret = btrfs_insert_empty_item(trans, root, path, &key, 0); | 1098 | ret = btrfs_insert_empty_item(trans, root, path, &key, 0); |
1099 | 1099 | ||
1100 | btrfs_release_path(root, path); | 1100 | btrfs_release_path(path); |
1101 | if (ret == 0) { | 1101 | if (ret == 0) { |
1102 | btrfs_inc_nlink(inode); | 1102 | btrfs_inc_nlink(inode); |
1103 | btrfs_update_inode(trans, root, inode); | 1103 | btrfs_update_inode(trans, root, inode); |
@@ -1193,7 +1193,7 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans, | |||
1193 | exists = 1; | 1193 | exists = 1; |
1194 | else | 1194 | else |
1195 | exists = 0; | 1195 | exists = 0; |
1196 | btrfs_release_path(root, path); | 1196 | btrfs_release_path(path); |
1197 | 1197 | ||
1198 | if (key->type == BTRFS_DIR_ITEM_KEY) { | 1198 | if (key->type == BTRFS_DIR_ITEM_KEY) { |
1199 | dst_di = btrfs_lookup_dir_item(trans, root, path, key->objectid, | 1199 | dst_di = btrfs_lookup_dir_item(trans, root, path, key->objectid, |
@@ -1206,7 +1206,7 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans, | |||
1206 | } else { | 1206 | } else { |
1207 | BUG(); | 1207 | BUG(); |
1208 | } | 1208 | } |
1209 | if (!dst_di || IS_ERR(dst_di)) { | 1209 | if (IS_ERR_OR_NULL(dst_di)) { |
1210 | /* we need a sequence number to insert, so we only | 1210 | /* we need a sequence number to insert, so we only |
1211 | * do inserts for the BTRFS_DIR_INDEX_KEY types | 1211 | * do inserts for the BTRFS_DIR_INDEX_KEY types |
1212 | */ | 1212 | */ |
@@ -1237,13 +1237,13 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans, | |||
1237 | if (key->type == BTRFS_DIR_INDEX_KEY) | 1237 | if (key->type == BTRFS_DIR_INDEX_KEY) |
1238 | goto insert; | 1238 | goto insert; |
1239 | out: | 1239 | out: |
1240 | btrfs_release_path(root, path); | 1240 | btrfs_release_path(path); |
1241 | kfree(name); | 1241 | kfree(name); |
1242 | iput(dir); | 1242 | iput(dir); |
1243 | return 0; | 1243 | return 0; |
1244 | 1244 | ||
1245 | insert: | 1245 | insert: |
1246 | btrfs_release_path(root, path); | 1246 | btrfs_release_path(path); |
1247 | ret = insert_one_name(trans, root, path, key->objectid, key->offset, | 1247 | ret = insert_one_name(trans, root, path, key->objectid, key->offset, |
1248 | name, name_len, log_type, &log_key); | 1248 | name, name_len, log_type, &log_key); |
1249 | 1249 | ||
@@ -1364,7 +1364,7 @@ next: | |||
1364 | *end_ret = found_end; | 1364 | *end_ret = found_end; |
1365 | ret = 0; | 1365 | ret = 0; |
1366 | out: | 1366 | out: |
1367 | btrfs_release_path(root, path); | 1367 | btrfs_release_path(path); |
1368 | return ret; | 1368 | return ret; |
1369 | } | 1369 | } |
1370 | 1370 | ||
@@ -1427,10 +1427,10 @@ again: | |||
1427 | dir_key->offset, | 1427 | dir_key->offset, |
1428 | name, name_len, 0); | 1428 | name, name_len, 0); |
1429 | } | 1429 | } |
1430 | if (!log_di || IS_ERR(log_di)) { | 1430 | if (IS_ERR_OR_NULL(log_di)) { |
1431 | btrfs_dir_item_key_to_cpu(eb, di, &location); | 1431 | btrfs_dir_item_key_to_cpu(eb, di, &location); |
1432 | btrfs_release_path(root, path); | 1432 | btrfs_release_path(path); |
1433 | btrfs_release_path(log, log_path); | 1433 | btrfs_release_path(log_path); |
1434 | inode = read_one_inode(root, location.objectid); | 1434 | inode = read_one_inode(root, location.objectid); |
1435 | BUG_ON(!inode); | 1435 | BUG_ON(!inode); |
1436 | 1436 | ||
@@ -1454,7 +1454,7 @@ again: | |||
1454 | ret = 0; | 1454 | ret = 0; |
1455 | goto out; | 1455 | goto out; |
1456 | } | 1456 | } |
1457 | btrfs_release_path(log, log_path); | 1457 | btrfs_release_path(log_path); |
1458 | kfree(name); | 1458 | kfree(name); |
1459 | 1459 | ||
1460 | ptr = (unsigned long)(di + 1); | 1460 | ptr = (unsigned long)(di + 1); |
@@ -1462,8 +1462,8 @@ again: | |||
1462 | } | 1462 | } |
1463 | ret = 0; | 1463 | ret = 0; |
1464 | out: | 1464 | out: |
1465 | btrfs_release_path(root, path); | 1465 | btrfs_release_path(path); |
1466 | btrfs_release_path(log, log_path); | 1466 | btrfs_release_path(log_path); |
1467 | return ret; | 1467 | return ret; |
1468 | } | 1468 | } |
1469 | 1469 | ||
@@ -1551,7 +1551,7 @@ again: | |||
1551 | break; | 1551 | break; |
1552 | dir_key.offset = found_key.offset + 1; | 1552 | dir_key.offset = found_key.offset + 1; |
1553 | } | 1553 | } |
1554 | btrfs_release_path(root, path); | 1554 | btrfs_release_path(path); |
1555 | if (range_end == (u64)-1) | 1555 | if (range_end == (u64)-1) |
1556 | break; | 1556 | break; |
1557 | range_start = range_end + 1; | 1557 | range_start = range_end + 1; |
@@ -1562,11 +1562,11 @@ next_type: | |||
1562 | if (key_type == BTRFS_DIR_LOG_ITEM_KEY) { | 1562 | if (key_type == BTRFS_DIR_LOG_ITEM_KEY) { |
1563 | key_type = BTRFS_DIR_LOG_INDEX_KEY; | 1563 | key_type = BTRFS_DIR_LOG_INDEX_KEY; |
1564 | dir_key.type = BTRFS_DIR_INDEX_KEY; | 1564 | dir_key.type = BTRFS_DIR_INDEX_KEY; |
1565 | btrfs_release_path(root, path); | 1565 | btrfs_release_path(path); |
1566 | goto again; | 1566 | goto again; |
1567 | } | 1567 | } |
1568 | out: | 1568 | out: |
1569 | btrfs_release_path(root, path); | 1569 | btrfs_release_path(path); |
1570 | btrfs_free_path(log_path); | 1570 | btrfs_free_path(log_path); |
1571 | iput(dir); | 1571 | iput(dir); |
1572 | return ret; | 1572 | return ret; |
@@ -2227,7 +2227,7 @@ int btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans, | |||
2227 | bytes_del += name_len; | 2227 | bytes_del += name_len; |
2228 | BUG_ON(ret); | 2228 | BUG_ON(ret); |
2229 | } | 2229 | } |
2230 | btrfs_release_path(log, path); | 2230 | btrfs_release_path(path); |
2231 | di = btrfs_lookup_dir_index_item(trans, log, path, dir_ino, | 2231 | di = btrfs_lookup_dir_index_item(trans, log, path, dir_ino, |
2232 | index, name, name_len, -1); | 2232 | index, name, name_len, -1); |
2233 | if (IS_ERR(di)) { | 2233 | if (IS_ERR(di)) { |
@@ -2249,7 +2249,7 @@ int btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans, | |||
2249 | key.objectid = dir_ino; | 2249 | key.objectid = dir_ino; |
2250 | key.offset = 0; | 2250 | key.offset = 0; |
2251 | key.type = BTRFS_INODE_ITEM_KEY; | 2251 | key.type = BTRFS_INODE_ITEM_KEY; |
2252 | btrfs_release_path(log, path); | 2252 | btrfs_release_path(path); |
2253 | 2253 | ||
2254 | ret = btrfs_search_slot(trans, log, &key, path, 0, 1); | 2254 | ret = btrfs_search_slot(trans, log, &key, path, 0, 1); |
2255 | if (ret < 0) { | 2255 | if (ret < 0) { |
@@ -2271,7 +2271,7 @@ int btrfs_del_dir_entries_in_log(struct btrfs_trans_handle *trans, | |||
2271 | btrfs_mark_buffer_dirty(path->nodes[0]); | 2271 | btrfs_mark_buffer_dirty(path->nodes[0]); |
2272 | } else | 2272 | } else |
2273 | ret = 0; | 2273 | ret = 0; |
2274 | btrfs_release_path(log, path); | 2274 | btrfs_release_path(path); |
2275 | } | 2275 | } |
2276 | fail: | 2276 | fail: |
2277 | btrfs_free_path(path); | 2277 | btrfs_free_path(path); |
@@ -2346,7 +2346,7 @@ static noinline int insert_dir_log_key(struct btrfs_trans_handle *trans, | |||
2346 | struct btrfs_dir_log_item); | 2346 | struct btrfs_dir_log_item); |
2347 | btrfs_set_dir_log_end(path->nodes[0], item, last_offset); | 2347 | btrfs_set_dir_log_end(path->nodes[0], item, last_offset); |
2348 | btrfs_mark_buffer_dirty(path->nodes[0]); | 2348 | btrfs_mark_buffer_dirty(path->nodes[0]); |
2349 | btrfs_release_path(log, path); | 2349 | btrfs_release_path(path); |
2350 | return 0; | 2350 | return 0; |
2351 | } | 2351 | } |
2352 | 2352 | ||
@@ -2395,10 +2395,10 @@ static noinline int log_dir_items(struct btrfs_trans_handle *trans, | |||
2395 | min_key.objectid = ino; | 2395 | min_key.objectid = ino; |
2396 | min_key.type = key_type; | 2396 | min_key.type = key_type; |
2397 | min_key.offset = (u64)-1; | 2397 | min_key.offset = (u64)-1; |
2398 | btrfs_release_path(root, path); | 2398 | btrfs_release_path(path); |
2399 | ret = btrfs_search_slot(NULL, root, &min_key, path, 0, 0); | 2399 | ret = btrfs_search_slot(NULL, root, &min_key, path, 0, 0); |
2400 | if (ret < 0) { | 2400 | if (ret < 0) { |
2401 | btrfs_release_path(root, path); | 2401 | btrfs_release_path(path); |
2402 | return ret; | 2402 | return ret; |
2403 | } | 2403 | } |
2404 | ret = btrfs_previous_item(root, path, ino, key_type); | 2404 | ret = btrfs_previous_item(root, path, ino, key_type); |
@@ -2434,7 +2434,7 @@ static noinline int log_dir_items(struct btrfs_trans_handle *trans, | |||
2434 | } | 2434 | } |
2435 | } | 2435 | } |
2436 | } | 2436 | } |
2437 | btrfs_release_path(root, path); | 2437 | btrfs_release_path(path); |
2438 | 2438 | ||
2439 | /* find the first key from this transaction again */ | 2439 | /* find the first key from this transaction again */ |
2440 | ret = btrfs_search_slot(NULL, root, &min_key, path, 0, 0); | 2440 | ret = btrfs_search_slot(NULL, root, &min_key, path, 0, 0); |
@@ -2491,8 +2491,8 @@ static noinline int log_dir_items(struct btrfs_trans_handle *trans, | |||
2491 | } | 2491 | } |
2492 | } | 2492 | } |
2493 | done: | 2493 | done: |
2494 | btrfs_release_path(root, path); | 2494 | btrfs_release_path(path); |
2495 | btrfs_release_path(log, dst_path); | 2495 | btrfs_release_path(dst_path); |
2496 | 2496 | ||
2497 | if (err == 0) { | 2497 | if (err == 0) { |
2498 | *last_offset_ret = last_offset; | 2498 | *last_offset_ret = last_offset; |
@@ -2588,9 +2588,9 @@ static int drop_objectid_items(struct btrfs_trans_handle *trans, | |||
2588 | 2588 | ||
2589 | ret = btrfs_del_item(trans, log, path); | 2589 | ret = btrfs_del_item(trans, log, path); |
2590 | BUG_ON(ret); | 2590 | BUG_ON(ret); |
2591 | btrfs_release_path(log, path); | 2591 | btrfs_release_path(path); |
2592 | } | 2592 | } |
2593 | btrfs_release_path(log, path); | 2593 | btrfs_release_path(path); |
2594 | return ret; | 2594 | return ret; |
2595 | } | 2595 | } |
2596 | 2596 | ||
@@ -2696,7 +2696,7 @@ static noinline int copy_items(struct btrfs_trans_handle *trans, | |||
2696 | } | 2696 | } |
2697 | 2697 | ||
2698 | btrfs_mark_buffer_dirty(dst_path->nodes[0]); | 2698 | btrfs_mark_buffer_dirty(dst_path->nodes[0]); |
2699 | btrfs_release_path(log, dst_path); | 2699 | btrfs_release_path(dst_path); |
2700 | kfree(ins_data); | 2700 | kfree(ins_data); |
2701 | 2701 | ||
2702 | /* | 2702 | /* |
@@ -2852,7 +2852,7 @@ next_slot: | |||
2852 | } | 2852 | } |
2853 | ins_nr = 0; | 2853 | ins_nr = 0; |
2854 | } | 2854 | } |
2855 | btrfs_release_path(root, path); | 2855 | btrfs_release_path(path); |
2856 | 2856 | ||
2857 | if (min_key.offset < (u64)-1) | 2857 | if (min_key.offset < (u64)-1) |
2858 | min_key.offset++; | 2858 | min_key.offset++; |
@@ -2875,8 +2875,8 @@ next_slot: | |||
2875 | } | 2875 | } |
2876 | WARN_ON(ins_nr); | 2876 | WARN_ON(ins_nr); |
2877 | if (inode_only == LOG_INODE_ALL && S_ISDIR(inode->i_mode)) { | 2877 | if (inode_only == LOG_INODE_ALL && S_ISDIR(inode->i_mode)) { |
2878 | btrfs_release_path(root, path); | 2878 | btrfs_release_path(path); |
2879 | btrfs_release_path(log, dst_path); | 2879 | btrfs_release_path(dst_path); |
2880 | ret = log_directory_changes(trans, root, inode, path, dst_path); | 2880 | ret = log_directory_changes(trans, root, inode, path, dst_path); |
2881 | if (ret) { | 2881 | if (ret) { |
2882 | err = ret; | 2882 | err = ret; |
@@ -3143,7 +3143,7 @@ again: | |||
3143 | } | 3143 | } |
3144 | btrfs_item_key_to_cpu(path->nodes[0], &found_key, | 3144 | btrfs_item_key_to_cpu(path->nodes[0], &found_key, |
3145 | path->slots[0]); | 3145 | path->slots[0]); |
3146 | btrfs_release_path(log_root_tree, path); | 3146 | btrfs_release_path(path); |
3147 | if (found_key.objectid != BTRFS_TREE_LOG_OBJECTID) | 3147 | if (found_key.objectid != BTRFS_TREE_LOG_OBJECTID) |
3148 | break; | 3148 | break; |
3149 | 3149 | ||
@@ -3178,7 +3178,7 @@ again: | |||
3178 | if (found_key.offset == 0) | 3178 | if (found_key.offset == 0) |
3179 | break; | 3179 | break; |
3180 | } | 3180 | } |
3181 | btrfs_release_path(log_root_tree, path); | 3181 | btrfs_release_path(path); |
3182 | 3182 | ||
3183 | /* step one is to pin it all, step two is to replay just inodes */ | 3183 | /* step one is to pin it all, step two is to replay just inodes */ |
3184 | if (wc.pin) { | 3184 | if (wc.pin) { |