aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nilfs2
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nilfs2')
-rw-r--r--fs/nilfs2/bmap.c6
-rw-r--r--fs/nilfs2/bmap.h1
-rw-r--r--fs/nilfs2/btree.c33
3 files changed, 16 insertions, 24 deletions
diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c
index 4f2523f5c0b1..ee9914a7b70d 100644
--- a/fs/nilfs2/bmap.c
+++ b/fs/nilfs2/bmap.c
@@ -424,12 +424,6 @@ int nilfs_bmap_get_block(const struct nilfs_bmap *bmap, __u64 ptr,
424 ptr, 0, bhp, 0); 424 ptr, 0, bhp, 0);
425} 425}
426 426
427void nilfs_bmap_put_block(const struct nilfs_bmap *bmap,
428 struct buffer_head *bh)
429{
430 brelse(bh);
431}
432
433int nilfs_bmap_get_new_block(const struct nilfs_bmap *bmap, __u64 ptr, 427int nilfs_bmap_get_new_block(const struct nilfs_bmap *bmap, __u64 ptr,
434 struct buffer_head **bhp) 428 struct buffer_head **bhp)
435{ 429{
diff --git a/fs/nilfs2/bmap.h b/fs/nilfs2/bmap.h
index ad251d3e6752..5b580b83289a 100644
--- a/fs/nilfs2/bmap.h
+++ b/fs/nilfs2/bmap.h
@@ -204,7 +204,6 @@ void nilfs_bmap_sub_blocks(const struct nilfs_bmap *, int);
204 204
205int nilfs_bmap_get_block(const struct nilfs_bmap *, __u64, 205int nilfs_bmap_get_block(const struct nilfs_bmap *, __u64,
206 struct buffer_head **); 206 struct buffer_head **);
207void nilfs_bmap_put_block(const struct nilfs_bmap *, struct buffer_head *);
208int nilfs_bmap_get_new_block(const struct nilfs_bmap *, __u64, 207int nilfs_bmap_get_new_block(const struct nilfs_bmap *, __u64,
209 struct buffer_head **); 208 struct buffer_head **);
210void nilfs_bmap_delete_block(const struct nilfs_bmap *, struct buffer_head *); 209void nilfs_bmap_delete_block(const struct nilfs_bmap *, struct buffer_head *);
diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c
index 959e5a7a8035..102e218b426f 100644
--- a/fs/nilfs2/btree.c
+++ b/fs/nilfs2/btree.c
@@ -109,8 +109,7 @@ static void nilfs_btree_clear_path(const struct nilfs_btree *btree,
109 level < NILFS_BTREE_LEVEL_MAX; 109 level < NILFS_BTREE_LEVEL_MAX;
110 level++) { 110 level++) {
111 if (path[level].bp_bh != NULL) { 111 if (path[level].bp_bh != NULL) {
112 nilfs_bmap_put_block(&btree->bt_bmap, 112 brelse(path[level].bp_bh);
113 path[level].bp_bh);
114 path[level].bp_bh = NULL; 113 path[level].bp_bh = NULL;
115 } 114 }
116 /* sib_bh is released or deleted by prepare or commit 115 /* sib_bh is released or deleted by prepare or commit
@@ -669,13 +668,13 @@ static void nilfs_btree_carry_left(struct nilfs_btree *btree,
669 nilfs_btree_node_get_key(btree, node, 0)); 668 nilfs_btree_node_get_key(btree, node, 0));
670 669
671 if (move) { 670 if (move) {
672 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_bh); 671 brelse(path[level].bp_bh);
673 path[level].bp_bh = path[level].bp_sib_bh; 672 path[level].bp_bh = path[level].bp_sib_bh;
674 path[level].bp_sib_bh = NULL; 673 path[level].bp_sib_bh = NULL;
675 path[level].bp_index += lnchildren; 674 path[level].bp_index += lnchildren;
676 path[level + 1].bp_index--; 675 path[level + 1].bp_index--;
677 } else { 676 } else {
678 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_sib_bh); 677 brelse(path[level].bp_sib_bh);
679 path[level].bp_sib_bh = NULL; 678 path[level].bp_sib_bh = NULL;
680 path[level].bp_index -= n; 679 path[level].bp_index -= n;
681 } 680 }
@@ -722,14 +721,14 @@ static void nilfs_btree_carry_right(struct nilfs_btree *btree,
722 path[level + 1].bp_index--; 721 path[level + 1].bp_index--;
723 722
724 if (move) { 723 if (move) {
725 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_bh); 724 brelse(path[level].bp_bh);
726 path[level].bp_bh = path[level].bp_sib_bh; 725 path[level].bp_bh = path[level].bp_sib_bh;
727 path[level].bp_sib_bh = NULL; 726 path[level].bp_sib_bh = NULL;
728 path[level].bp_index -= 727 path[level].bp_index -=
729 nilfs_btree_node_get_nchildren(btree, node); 728 nilfs_btree_node_get_nchildren(btree, node);
730 path[level + 1].bp_index++; 729 path[level + 1].bp_index++;
731 } else { 730 } else {
732 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_sib_bh); 731 brelse(path[level].bp_sib_bh);
733 path[level].bp_sib_bh = NULL; 732 path[level].bp_sib_bh = NULL;
734 } 733 }
735 734
@@ -781,7 +780,7 @@ static void nilfs_btree_split(struct nilfs_btree *btree,
781 *keyp = nilfs_btree_node_get_key(btree, right, 0); 780 *keyp = nilfs_btree_node_get_key(btree, right, 0);
782 *ptrp = path[level].bp_newreq.bpr_ptr; 781 *ptrp = path[level].bp_newreq.bpr_ptr;
783 782
784 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_bh); 783 brelse(path[level].bp_bh);
785 path[level].bp_bh = path[level].bp_sib_bh; 784 path[level].bp_bh = path[level].bp_sib_bh;
786 path[level].bp_sib_bh = NULL; 785 path[level].bp_sib_bh = NULL;
787 } else { 786 } else {
@@ -790,7 +789,7 @@ static void nilfs_btree_split(struct nilfs_btree *btree,
790 *keyp = nilfs_btree_node_get_key(btree, right, 0); 789 *keyp = nilfs_btree_node_get_key(btree, right, 0);
791 *ptrp = path[level].bp_newreq.bpr_ptr; 790 *ptrp = path[level].bp_newreq.bpr_ptr;
792 791
793 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_sib_bh); 792 brelse(path[level].bp_sib_bh);
794 path[level].bp_sib_bh = NULL; 793 path[level].bp_sib_bh = NULL;
795 } 794 }
796 795
@@ -936,7 +935,7 @@ static int nilfs_btree_prepare_insert(struct nilfs_btree *btree,
936 stats->bs_nblocks++; 935 stats->bs_nblocks++;
937 goto out; 936 goto out;
938 } else 937 } else
939 nilfs_bmap_put_block(&btree->bt_bmap, bh); 938 brelse(bh);
940 } 939 }
941 940
942 /* right sibling */ 941 /* right sibling */
@@ -956,7 +955,7 @@ static int nilfs_btree_prepare_insert(struct nilfs_btree *btree,
956 stats->bs_nblocks++; 955 stats->bs_nblocks++;
957 goto out; 956 goto out;
958 } else 957 } else
959 nilfs_bmap_put_block(&btree->bt_bmap, bh); 958 brelse(bh);
960 } 959 }
961 960
962 /* split */ 961 /* split */
@@ -1153,7 +1152,7 @@ static void nilfs_btree_borrow_left(struct nilfs_btree *btree,
1153 nilfs_btree_promote_key(btree, path, level + 1, 1152 nilfs_btree_promote_key(btree, path, level + 1,
1154 nilfs_btree_node_get_key(btree, node, 0)); 1153 nilfs_btree_node_get_key(btree, node, 0));
1155 1154
1156 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_sib_bh); 1155 brelse(path[level].bp_sib_bh);
1157 path[level].bp_sib_bh = NULL; 1156 path[level].bp_sib_bh = NULL;
1158 path[level].bp_index += n; 1157 path[level].bp_index += n;
1159} 1158}
@@ -1192,7 +1191,7 @@ static void nilfs_btree_borrow_right(struct nilfs_btree *btree,
1192 nilfs_btree_node_get_key(btree, right, 0)); 1191 nilfs_btree_node_get_key(btree, right, 0));
1193 path[level + 1].bp_index--; 1192 path[level + 1].bp_index--;
1194 1193
1195 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_sib_bh); 1194 brelse(path[level].bp_sib_bh);
1196 path[level].bp_sib_bh = NULL; 1195 path[level].bp_sib_bh = NULL;
1197} 1196}
1198 1197
@@ -1403,7 +1402,7 @@ static int nilfs_btree_prepare_delete(struct nilfs_btree *btree,
1403 &btree->bt_bmap, &path[level].bp_oldreq); 1402 &btree->bt_bmap, &path[level].bp_oldreq);
1404 err_out_child_node: 1403 err_out_child_node:
1405 for (level--; level >= NILFS_BTREE_LEVEL_NODE_MIN; level--) { 1404 for (level--; level >= NILFS_BTREE_LEVEL_NODE_MIN; level--) {
1406 nilfs_bmap_put_block(&btree->bt_bmap, path[level].bp_sib_bh); 1405 brelse(path[level].bp_sib_bh);
1407 if (btree->bt_bmap.b_pops->bpop_abort_end_ptr != NULL) 1406 if (btree->bt_bmap.b_pops->bpop_abort_end_ptr != NULL)
1408 btree->bt_bmap.b_pops->bpop_abort_end_ptr( 1407 btree->bt_bmap.b_pops->bpop_abort_end_ptr(
1409 &btree->bt_bmap, &path[level].bp_oldreq); 1408 &btree->bt_bmap, &path[level].bp_oldreq);
@@ -1515,7 +1514,7 @@ static int nilfs_btree_check_delete(struct nilfs_bmap *bmap, __u64 key)
1515 nextmaxkey = (nchildren > 1) ? 1514 nextmaxkey = (nchildren > 1) ?
1516 nilfs_btree_node_get_key(btree, node, nchildren - 2) : 0; 1515 nilfs_btree_node_get_key(btree, node, nchildren - 2) : 0;
1517 if (bh != NULL) 1516 if (bh != NULL)
1518 nilfs_bmap_put_block(bmap, bh); 1517 brelse(bh);
1519 1518
1520 return (maxkey == key) && (nextmaxkey < bmap->b_low); 1519 return (maxkey == key) && (nextmaxkey < bmap->b_low);
1521} 1520}
@@ -1563,7 +1562,7 @@ static int nilfs_btree_gather_data(struct nilfs_bmap *bmap,
1563 } 1562 }
1564 1563
1565 if (bh != NULL) 1564 if (bh != NULL)
1566 nilfs_bmap_put_block(bmap, bh); 1565 brelse(bh);
1567 1566
1568 return nitems; 1567 return nitems;
1569} 1568}
@@ -1661,7 +1660,7 @@ nilfs_btree_commit_convert_and_insert(struct nilfs_bmap *bmap,
1661 nilfs_bmap_set_dirty(bmap); 1660 nilfs_bmap_set_dirty(bmap);
1662 1661
1663 unlock_buffer(bh); 1662 unlock_buffer(bh);
1664 nilfs_bmap_put_block(bmap, bh); 1663 brelse(bh);
1665 1664
1666 /* create root node at level 2 */ 1665 /* create root node at level 2 */
1667 node = nilfs_btree_get_root(btree); 1666 node = nilfs_btree_get_root(btree);
@@ -2176,7 +2175,7 @@ static int nilfs_btree_mark(struct nilfs_bmap *bmap, __u64 key, int level)
2176 2175
2177 if (!buffer_dirty(bh)) 2176 if (!buffer_dirty(bh))
2178 nilfs_btnode_mark_dirty(bh); 2177 nilfs_btnode_mark_dirty(bh);
2179 nilfs_bmap_put_block(&btree->bt_bmap, bh); 2178 brelse(bh);
2180 if (!nilfs_bmap_dirty(&btree->bt_bmap)) 2179 if (!nilfs_bmap_dirty(&btree->bt_bmap))
2181 nilfs_bmap_set_dirty(&btree->bt_bmap); 2180 nilfs_bmap_set_dirty(&btree->bt_bmap);
2182 2181