diff options
| -rw-r--r-- | fs/nilfs2/btree.c | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c index 21ed8ccea4b9..115b157d508b 100644 --- a/fs/nilfs2/btree.c +++ b/fs/nilfs2/btree.c | |||
| @@ -97,25 +97,13 @@ static void nilfs_btree_init_path(struct nilfs_btree_path *path) | |||
| 97 | } | 97 | } |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | static void nilfs_btree_clear_path(struct nilfs_btree_path *path) | 100 | static void nilfs_btree_release_path(struct nilfs_btree_path *path) |
| 101 | { | 101 | { |
| 102 | int level; | 102 | int level; |
| 103 | 103 | ||
| 104 | for (level = NILFS_BTREE_LEVEL_DATA; | 104 | for (level = NILFS_BTREE_LEVEL_DATA; level < NILFS_BTREE_LEVEL_MAX; |
| 105 | level < NILFS_BTREE_LEVEL_MAX; | 105 | level++) |
| 106 | level++) { | 106 | brelse(path[level].bp_bh); |
| 107 | if (path[level].bp_bh != NULL) { | ||
| 108 | brelse(path[level].bp_bh); | ||
| 109 | path[level].bp_bh = NULL; | ||
| 110 | } | ||
| 111 | /* sib_bh is released or deleted by prepare or commit | ||
| 112 | * operations. */ | ||
| 113 | path[level].bp_sib_bh = NULL; | ||
| 114 | path[level].bp_index = 0; | ||
| 115 | path[level].bp_oldreq.bpr_ptr = NILFS_BMAP_INVALID_PTR; | ||
| 116 | path[level].bp_newreq.bpr_ptr = NILFS_BMAP_INVALID_PTR; | ||
| 117 | path[level].bp_op = NULL; | ||
| 118 | } | ||
| 119 | } | 107 | } |
| 120 | 108 | ||
| 121 | /* | 109 | /* |
| @@ -557,7 +545,7 @@ static int nilfs_btree_lookup(const struct nilfs_bmap *bmap, | |||
| 557 | if (ptrp != NULL) | 545 | if (ptrp != NULL) |
| 558 | *ptrp = ptr; | 546 | *ptrp = ptr; |
| 559 | 547 | ||
| 560 | nilfs_btree_clear_path(path); | 548 | nilfs_btree_release_path(path); |
| 561 | nilfs_btree_free_path(path); | 549 | nilfs_btree_free_path(path); |
| 562 | 550 | ||
| 563 | return ret; | 551 | return ret; |
| @@ -639,7 +627,7 @@ static int nilfs_btree_lookup_contig(const struct nilfs_bmap *bmap, | |||
| 639 | *ptrp = ptr; | 627 | *ptrp = ptr; |
| 640 | ret = cnt; | 628 | ret = cnt; |
| 641 | out: | 629 | out: |
| 642 | nilfs_btree_clear_path(path); | 630 | nilfs_btree_release_path(path); |
| 643 | nilfs_btree_free_path(path); | 631 | nilfs_btree_free_path(path); |
| 644 | return ret; | 632 | return ret; |
| 645 | } | 633 | } |
| @@ -1146,7 +1134,7 @@ static int nilfs_btree_insert(struct nilfs_bmap *bmap, __u64 key, __u64 ptr) | |||
| 1146 | nilfs_bmap_add_blocks(bmap, stats.bs_nblocks); | 1134 | nilfs_bmap_add_blocks(bmap, stats.bs_nblocks); |
| 1147 | 1135 | ||
| 1148 | out: | 1136 | out: |
| 1149 | nilfs_btree_clear_path(path); | 1137 | nilfs_btree_release_path(path); |
| 1150 | nilfs_btree_free_path(path); | 1138 | nilfs_btree_free_path(path); |
| 1151 | return ret; | 1139 | return ret; |
| 1152 | } | 1140 | } |
| @@ -1501,7 +1489,7 @@ static int nilfs_btree_delete(struct nilfs_bmap *bmap, __u64 key) | |||
| 1501 | nilfs_bmap_sub_blocks(bmap, stats.bs_nblocks); | 1489 | nilfs_bmap_sub_blocks(bmap, stats.bs_nblocks); |
| 1502 | 1490 | ||
| 1503 | out: | 1491 | out: |
| 1504 | nilfs_btree_clear_path(path); | 1492 | nilfs_btree_release_path(path); |
| 1505 | nilfs_btree_free_path(path); | 1493 | nilfs_btree_free_path(path); |
| 1506 | return ret; | 1494 | return ret; |
| 1507 | } | 1495 | } |
| @@ -1520,7 +1508,7 @@ static int nilfs_btree_last_key(const struct nilfs_bmap *bmap, __u64 *keyp) | |||
| 1520 | 1508 | ||
| 1521 | ret = nilfs_btree_do_lookup_last(btree, path, keyp, NULL); | 1509 | ret = nilfs_btree_do_lookup_last(btree, path, keyp, NULL); |
| 1522 | 1510 | ||
| 1523 | nilfs_btree_clear_path(path); | 1511 | nilfs_btree_release_path(path); |
| 1524 | nilfs_btree_free_path(path); | 1512 | nilfs_btree_free_path(path); |
| 1525 | 1513 | ||
| 1526 | return ret; | 1514 | return ret; |
| @@ -1975,7 +1963,7 @@ static int nilfs_btree_propagate(const struct nilfs_bmap *bmap, | |||
| 1975 | nilfs_btree_propagate_p(btree, path, level, bh); | 1963 | nilfs_btree_propagate_p(btree, path, level, bh); |
| 1976 | 1964 | ||
| 1977 | out: | 1965 | out: |
| 1978 | nilfs_btree_clear_path(path); | 1966 | nilfs_btree_release_path(path); |
| 1979 | nilfs_btree_free_path(path); | 1967 | nilfs_btree_free_path(path); |
| 1980 | 1968 | ||
| 1981 | return ret; | 1969 | return ret; |
| @@ -2156,7 +2144,7 @@ static int nilfs_btree_assign(struct nilfs_bmap *bmap, | |||
| 2156 | nilfs_btree_assign_p(btree, path, level, bh, blocknr, binfo); | 2144 | nilfs_btree_assign_p(btree, path, level, bh, blocknr, binfo); |
| 2157 | 2145 | ||
| 2158 | out: | 2146 | out: |
| 2159 | nilfs_btree_clear_path(path); | 2147 | nilfs_btree_release_path(path); |
| 2160 | nilfs_btree_free_path(path); | 2148 | nilfs_btree_free_path(path); |
| 2161 | 2149 | ||
| 2162 | return ret; | 2150 | return ret; |
| @@ -2222,7 +2210,7 @@ static int nilfs_btree_mark(struct nilfs_bmap *bmap, __u64 key, int level) | |||
| 2222 | nilfs_bmap_set_dirty(&btree->bt_bmap); | 2210 | nilfs_bmap_set_dirty(&btree->bt_bmap); |
| 2223 | 2211 | ||
| 2224 | out: | 2212 | out: |
| 2225 | nilfs_btree_clear_path(path); | 2213 | nilfs_btree_release_path(path); |
| 2226 | nilfs_btree_free_path(path); | 2214 | nilfs_btree_free_path(path); |
| 2227 | return ret; | 2215 | return ret; |
| 2228 | } | 2216 | } |
