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

Commit 5fc7b141 authored by Ryusuke Konishi's avatar Ryusuke Konishi
Browse files

nilfs2: use mark_buffer_dirty to mark btnode or meta data dirty



This replaces nilfs_mdt_mark_buffer_dirty and nilfs_btnode_mark_dirty
macros with mark_buffer_dirty and gets rid of nilfs_mark_buffer_dirty,
an own mark buffer dirty function.

Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
parent aa405b1f
Loading
Loading
Loading
Loading
+6 −6
Original line number Original line Diff line number Diff line
@@ -489,8 +489,8 @@ int nilfs_palloc_prepare_alloc_entry(struct inode *inode,
void nilfs_palloc_commit_alloc_entry(struct inode *inode,
void nilfs_palloc_commit_alloc_entry(struct inode *inode,
				     struct nilfs_palloc_req *req)
				     struct nilfs_palloc_req *req)
{
{
	nilfs_mdt_mark_buffer_dirty(req->pr_bitmap_bh);
	mark_buffer_dirty(req->pr_bitmap_bh);
	nilfs_mdt_mark_buffer_dirty(req->pr_desc_bh);
	mark_buffer_dirty(req->pr_desc_bh);
	nilfs_mdt_mark_dirty(inode);
	nilfs_mdt_mark_dirty(inode);


	brelse(req->pr_bitmap_bh);
	brelse(req->pr_bitmap_bh);
@@ -527,8 +527,8 @@ void nilfs_palloc_commit_free_entry(struct inode *inode,
	kunmap(req->pr_bitmap_bh->b_page);
	kunmap(req->pr_bitmap_bh->b_page);
	kunmap(req->pr_desc_bh->b_page);
	kunmap(req->pr_desc_bh->b_page);


	nilfs_mdt_mark_buffer_dirty(req->pr_desc_bh);
	mark_buffer_dirty(req->pr_desc_bh);
	nilfs_mdt_mark_buffer_dirty(req->pr_bitmap_bh);
	mark_buffer_dirty(req->pr_bitmap_bh);
	nilfs_mdt_mark_dirty(inode);
	nilfs_mdt_mark_dirty(inode);


	brelse(req->pr_bitmap_bh);
	brelse(req->pr_bitmap_bh);
@@ -683,8 +683,8 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
		kunmap(bitmap_bh->b_page);
		kunmap(bitmap_bh->b_page);
		kunmap(desc_bh->b_page);
		kunmap(desc_bh->b_page);


		nilfs_mdt_mark_buffer_dirty(desc_bh);
		mark_buffer_dirty(desc_bh);
		nilfs_mdt_mark_buffer_dirty(bitmap_bh);
		mark_buffer_dirty(bitmap_bh);
		nilfs_mdt_mark_dirty(inode);
		nilfs_mdt_mark_dirty(inode);


		brelse(bitmap_bh);
		brelse(bitmap_bh);
+2 −2
Original line number Original line Diff line number Diff line
@@ -254,7 +254,7 @@ void nilfs_btnode_commit_change_key(struct address_space *btnc,
				       "invalid oldkey %lld (newkey=%lld)",
				       "invalid oldkey %lld (newkey=%lld)",
				       (unsigned long long)oldkey,
				       (unsigned long long)oldkey,
				       (unsigned long long)newkey);
				       (unsigned long long)newkey);
		nilfs_btnode_mark_dirty(obh);
		mark_buffer_dirty(obh);


		spin_lock_irq(&btnc->tree_lock);
		spin_lock_irq(&btnc->tree_lock);
		radix_tree_delete(&btnc->page_tree, oldkey);
		radix_tree_delete(&btnc->page_tree, oldkey);
@@ -266,7 +266,7 @@ void nilfs_btnode_commit_change_key(struct address_space *btnc,
		unlock_page(opage);
		unlock_page(opage);
	} else {
	} else {
		nilfs_copy_buffer(nbh, obh);
		nilfs_copy_buffer(nbh, obh);
		nilfs_btnode_mark_dirty(nbh);
		mark_buffer_dirty(nbh);


		nbh->b_blocknr = newkey;
		nbh->b_blocknr = newkey;
		ctxt->bh = nbh;
		ctxt->bh = nbh;
+0 −3
Original line number Original line Diff line number Diff line
@@ -50,7 +50,4 @@ void nilfs_btnode_commit_change_key(struct address_space *,
void nilfs_btnode_abort_change_key(struct address_space *,
void nilfs_btnode_abort_change_key(struct address_space *,
				   struct nilfs_btnode_chkey_ctxt *);
				   struct nilfs_btnode_chkey_ctxt *);


#define nilfs_btnode_mark_dirty(bh)	nilfs_mark_buffer_dirty(bh)


#endif	/* _NILFS_BTNODE_H */
#endif	/* _NILFS_BTNODE_H */
+19 −19
Original line number Original line Diff line number Diff line
@@ -714,7 +714,7 @@ static void nilfs_btree_promote_key(struct nilfs_bmap *btree,
				nilfs_btree_get_nonroot_node(path, level),
				nilfs_btree_get_nonroot_node(path, level),
				path[level].bp_index, key);
				path[level].bp_index, key);
			if (!buffer_dirty(path[level].bp_bh))
			if (!buffer_dirty(path[level].bp_bh))
				nilfs_btnode_mark_dirty(path[level].bp_bh);
				mark_buffer_dirty(path[level].bp_bh);
		} while ((path[level].bp_index == 0) &&
		} while ((path[level].bp_index == 0) &&
			 (++level < nilfs_btree_height(btree) - 1));
			 (++level < nilfs_btree_height(btree) - 1));
	}
	}
@@ -739,7 +739,7 @@ static void nilfs_btree_do_insert(struct nilfs_bmap *btree,
		nilfs_btree_node_insert(node, path[level].bp_index,
		nilfs_btree_node_insert(node, path[level].bp_index,
					*keyp, *ptrp, ncblk);
					*keyp, *ptrp, ncblk);
		if (!buffer_dirty(path[level].bp_bh))
		if (!buffer_dirty(path[level].bp_bh))
			nilfs_btnode_mark_dirty(path[level].bp_bh);
			mark_buffer_dirty(path[level].bp_bh);


		if (path[level].bp_index == 0)
		if (path[level].bp_index == 0)
			nilfs_btree_promote_key(btree, path, level + 1,
			nilfs_btree_promote_key(btree, path, level + 1,
@@ -777,9 +777,9 @@ static void nilfs_btree_carry_left(struct nilfs_bmap *btree,
	nilfs_btree_node_move_left(left, node, n, ncblk, ncblk);
	nilfs_btree_node_move_left(left, node, n, ncblk, ncblk);


	if (!buffer_dirty(path[level].bp_bh))
	if (!buffer_dirty(path[level].bp_bh))
		nilfs_btnode_mark_dirty(path[level].bp_bh);
		mark_buffer_dirty(path[level].bp_bh);
	if (!buffer_dirty(path[level].bp_sib_bh))
	if (!buffer_dirty(path[level].bp_sib_bh))
		nilfs_btnode_mark_dirty(path[level].bp_sib_bh);
		mark_buffer_dirty(path[level].bp_sib_bh);


	nilfs_btree_promote_key(btree, path, level + 1,
	nilfs_btree_promote_key(btree, path, level + 1,
				nilfs_btree_node_get_key(node, 0));
				nilfs_btree_node_get_key(node, 0));
@@ -823,9 +823,9 @@ static void nilfs_btree_carry_right(struct nilfs_bmap *btree,
	nilfs_btree_node_move_right(node, right, n, ncblk, ncblk);
	nilfs_btree_node_move_right(node, right, n, ncblk, ncblk);


	if (!buffer_dirty(path[level].bp_bh))
	if (!buffer_dirty(path[level].bp_bh))
		nilfs_btnode_mark_dirty(path[level].bp_bh);
		mark_buffer_dirty(path[level].bp_bh);
	if (!buffer_dirty(path[level].bp_sib_bh))
	if (!buffer_dirty(path[level].bp_sib_bh))
		nilfs_btnode_mark_dirty(path[level].bp_sib_bh);
		mark_buffer_dirty(path[level].bp_sib_bh);


	path[level + 1].bp_index++;
	path[level + 1].bp_index++;
	nilfs_btree_promote_key(btree, path, level + 1,
	nilfs_btree_promote_key(btree, path, level + 1,
@@ -870,9 +870,9 @@ static void nilfs_btree_split(struct nilfs_bmap *btree,
	nilfs_btree_node_move_right(node, right, n, ncblk, ncblk);
	nilfs_btree_node_move_right(node, right, n, ncblk, ncblk);


	if (!buffer_dirty(path[level].bp_bh))
	if (!buffer_dirty(path[level].bp_bh))
		nilfs_btnode_mark_dirty(path[level].bp_bh);
		mark_buffer_dirty(path[level].bp_bh);
	if (!buffer_dirty(path[level].bp_sib_bh))
	if (!buffer_dirty(path[level].bp_sib_bh))
		nilfs_btnode_mark_dirty(path[level].bp_sib_bh);
		mark_buffer_dirty(path[level].bp_sib_bh);


	newkey = nilfs_btree_node_get_key(right, 0);
	newkey = nilfs_btree_node_get_key(right, 0);
	newptr = path[level].bp_newreq.bpr_ptr;
	newptr = path[level].bp_newreq.bpr_ptr;
@@ -919,7 +919,7 @@ static void nilfs_btree_grow(struct nilfs_bmap *btree,
	nilfs_btree_node_set_level(root, level + 1);
	nilfs_btree_node_set_level(root, level + 1);


	if (!buffer_dirty(path[level].bp_sib_bh))
	if (!buffer_dirty(path[level].bp_sib_bh))
		nilfs_btnode_mark_dirty(path[level].bp_sib_bh);
		mark_buffer_dirty(path[level].bp_sib_bh);


	path[level].bp_bh = path[level].bp_sib_bh;
	path[level].bp_bh = path[level].bp_sib_bh;
	path[level].bp_sib_bh = NULL;
	path[level].bp_sib_bh = NULL;
@@ -1194,7 +1194,7 @@ static void nilfs_btree_do_delete(struct nilfs_bmap *btree,
		nilfs_btree_node_delete(node, path[level].bp_index,
		nilfs_btree_node_delete(node, path[level].bp_index,
					keyp, ptrp, ncblk);
					keyp, ptrp, ncblk);
		if (!buffer_dirty(path[level].bp_bh))
		if (!buffer_dirty(path[level].bp_bh))
			nilfs_btnode_mark_dirty(path[level].bp_bh);
			mark_buffer_dirty(path[level].bp_bh);
		if (path[level].bp_index == 0)
		if (path[level].bp_index == 0)
			nilfs_btree_promote_key(btree, path, level + 1,
			nilfs_btree_promote_key(btree, path, level + 1,
				nilfs_btree_node_get_key(node, 0));
				nilfs_btree_node_get_key(node, 0));
@@ -1226,9 +1226,9 @@ static void nilfs_btree_borrow_left(struct nilfs_bmap *btree,
	nilfs_btree_node_move_right(left, node, n, ncblk, ncblk);
	nilfs_btree_node_move_right(left, node, n, ncblk, ncblk);


	if (!buffer_dirty(path[level].bp_bh))
	if (!buffer_dirty(path[level].bp_bh))
		nilfs_btnode_mark_dirty(path[level].bp_bh);
		mark_buffer_dirty(path[level].bp_bh);
	if (!buffer_dirty(path[level].bp_sib_bh))
	if (!buffer_dirty(path[level].bp_sib_bh))
		nilfs_btnode_mark_dirty(path[level].bp_sib_bh);
		mark_buffer_dirty(path[level].bp_sib_bh);


	nilfs_btree_promote_key(btree, path, level + 1,
	nilfs_btree_promote_key(btree, path, level + 1,
				nilfs_btree_node_get_key(node, 0));
				nilfs_btree_node_get_key(node, 0));
@@ -1258,9 +1258,9 @@ static void nilfs_btree_borrow_right(struct nilfs_bmap *btree,
	nilfs_btree_node_move_left(node, right, n, ncblk, ncblk);
	nilfs_btree_node_move_left(node, right, n, ncblk, ncblk);


	if (!buffer_dirty(path[level].bp_bh))
	if (!buffer_dirty(path[level].bp_bh))
		nilfs_btnode_mark_dirty(path[level].bp_bh);
		mark_buffer_dirty(path[level].bp_bh);
	if (!buffer_dirty(path[level].bp_sib_bh))
	if (!buffer_dirty(path[level].bp_sib_bh))
		nilfs_btnode_mark_dirty(path[level].bp_sib_bh);
		mark_buffer_dirty(path[level].bp_sib_bh);


	path[level + 1].bp_index++;
	path[level + 1].bp_index++;
	nilfs_btree_promote_key(btree, path, level + 1,
	nilfs_btree_promote_key(btree, path, level + 1,
@@ -1289,7 +1289,7 @@ static void nilfs_btree_concat_left(struct nilfs_bmap *btree,
	nilfs_btree_node_move_left(left, node, n, ncblk, ncblk);
	nilfs_btree_node_move_left(left, node, n, ncblk, ncblk);


	if (!buffer_dirty(path[level].bp_sib_bh))
	if (!buffer_dirty(path[level].bp_sib_bh))
		nilfs_btnode_mark_dirty(path[level].bp_sib_bh);
		mark_buffer_dirty(path[level].bp_sib_bh);


	nilfs_btnode_delete(path[level].bp_bh);
	nilfs_btnode_delete(path[level].bp_bh);
	path[level].bp_bh = path[level].bp_sib_bh;
	path[level].bp_bh = path[level].bp_sib_bh;
@@ -1315,7 +1315,7 @@ static void nilfs_btree_concat_right(struct nilfs_bmap *btree,
	nilfs_btree_node_move_left(node, right, n, ncblk, ncblk);
	nilfs_btree_node_move_left(node, right, n, ncblk, ncblk);


	if (!buffer_dirty(path[level].bp_bh))
	if (!buffer_dirty(path[level].bp_bh))
		nilfs_btnode_mark_dirty(path[level].bp_bh);
		mark_buffer_dirty(path[level].bp_bh);


	nilfs_btnode_delete(path[level].bp_sib_bh);
	nilfs_btnode_delete(path[level].bp_sib_bh);
	path[level].bp_sib_bh = NULL;
	path[level].bp_sib_bh = NULL;
@@ -1709,7 +1709,7 @@ nilfs_btree_commit_convert_and_insert(struct nilfs_bmap *btree,
		nilfs_btree_node_init(node, 0, 1, n, ncblk, keys, ptrs);
		nilfs_btree_node_init(node, 0, 1, n, ncblk, keys, ptrs);
		nilfs_btree_node_insert(node, n, key, dreq->bpr_ptr, ncblk);
		nilfs_btree_node_insert(node, n, key, dreq->bpr_ptr, ncblk);
		if (!buffer_dirty(bh))
		if (!buffer_dirty(bh))
			nilfs_btnode_mark_dirty(bh);
			mark_buffer_dirty(bh);
		if (!nilfs_bmap_dirty(btree))
		if (!nilfs_bmap_dirty(btree))
			nilfs_bmap_set_dirty(btree);
			nilfs_bmap_set_dirty(btree);


@@ -1787,7 +1787,7 @@ static int nilfs_btree_propagate_p(struct nilfs_bmap *btree,
{
{
	while ((++level < nilfs_btree_height(btree) - 1) &&
	while ((++level < nilfs_btree_height(btree) - 1) &&
	       !buffer_dirty(path[level].bp_bh))
	       !buffer_dirty(path[level].bp_bh))
		nilfs_btnode_mark_dirty(path[level].bp_bh);
		mark_buffer_dirty(path[level].bp_bh);


	return 0;
	return 0;
}
}
@@ -2229,7 +2229,7 @@ static int nilfs_btree_mark(struct nilfs_bmap *btree, __u64 key, int level)
	}
	}


	if (!buffer_dirty(bh))
	if (!buffer_dirty(bh))
		nilfs_btnode_mark_dirty(bh);
		mark_buffer_dirty(bh);
	brelse(bh);
	brelse(bh);
	if (!nilfs_bmap_dirty(btree))
	if (!nilfs_bmap_dirty(btree))
		nilfs_bmap_set_dirty(btree);
		nilfs_bmap_set_dirty(btree);
+12 −12
Original line number Original line Diff line number Diff line
@@ -216,14 +216,14 @@ int nilfs_cpfile_get_checkpoint(struct inode *cpfile,
		if (!nilfs_cpfile_is_in_first(cpfile, cno))
		if (!nilfs_cpfile_is_in_first(cpfile, cno))
			nilfs_cpfile_block_add_valid_checkpoints(cpfile, cp_bh,
			nilfs_cpfile_block_add_valid_checkpoints(cpfile, cp_bh,
								 kaddr, 1);
								 kaddr, 1);
		nilfs_mdt_mark_buffer_dirty(cp_bh);
		mark_buffer_dirty(cp_bh);


		kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
		kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
		header = nilfs_cpfile_block_get_header(cpfile, header_bh,
		header = nilfs_cpfile_block_get_header(cpfile, header_bh,
						       kaddr);
						       kaddr);
		le64_add_cpu(&header->ch_ncheckpoints, 1);
		le64_add_cpu(&header->ch_ncheckpoints, 1);
		kunmap_atomic(kaddr, KM_USER0);
		kunmap_atomic(kaddr, KM_USER0);
		nilfs_mdt_mark_buffer_dirty(header_bh);
		mark_buffer_dirty(header_bh);
		nilfs_mdt_mark_dirty(cpfile);
		nilfs_mdt_mark_dirty(cpfile);
	}
	}


@@ -326,7 +326,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
		}
		}
		if (nicps > 0) {
		if (nicps > 0) {
			tnicps += nicps;
			tnicps += nicps;
			nilfs_mdt_mark_buffer_dirty(cp_bh);
			mark_buffer_dirty(cp_bh);
			nilfs_mdt_mark_dirty(cpfile);
			nilfs_mdt_mark_dirty(cpfile);
			if (!nilfs_cpfile_is_in_first(cpfile, cno)) {
			if (!nilfs_cpfile_is_in_first(cpfile, cno)) {
				count =
				count =
@@ -358,7 +358,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
		header = nilfs_cpfile_block_get_header(cpfile, header_bh,
		header = nilfs_cpfile_block_get_header(cpfile, header_bh,
						       kaddr);
						       kaddr);
		le64_add_cpu(&header->ch_ncheckpoints, -(u64)tnicps);
		le64_add_cpu(&header->ch_ncheckpoints, -(u64)tnicps);
		nilfs_mdt_mark_buffer_dirty(header_bh);
		mark_buffer_dirty(header_bh);
		nilfs_mdt_mark_dirty(cpfile);
		nilfs_mdt_mark_dirty(cpfile);
		kunmap_atomic(kaddr, KM_USER0);
		kunmap_atomic(kaddr, KM_USER0);
	}
	}
@@ -671,10 +671,10 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
	le64_add_cpu(&header->ch_nsnapshots, 1);
	le64_add_cpu(&header->ch_nsnapshots, 1);
	kunmap_atomic(kaddr, KM_USER0);
	kunmap_atomic(kaddr, KM_USER0);


	nilfs_mdt_mark_buffer_dirty(prev_bh);
	mark_buffer_dirty(prev_bh);
	nilfs_mdt_mark_buffer_dirty(curr_bh);
	mark_buffer_dirty(curr_bh);
	nilfs_mdt_mark_buffer_dirty(cp_bh);
	mark_buffer_dirty(cp_bh);
	nilfs_mdt_mark_buffer_dirty(header_bh);
	mark_buffer_dirty(header_bh);
	nilfs_mdt_mark_dirty(cpfile);
	nilfs_mdt_mark_dirty(cpfile);


	brelse(prev_bh);
	brelse(prev_bh);
@@ -774,10 +774,10 @@ static int nilfs_cpfile_clear_snapshot(struct inode *cpfile, __u64 cno)
	le64_add_cpu(&header->ch_nsnapshots, -1);
	le64_add_cpu(&header->ch_nsnapshots, -1);
	kunmap_atomic(kaddr, KM_USER0);
	kunmap_atomic(kaddr, KM_USER0);


	nilfs_mdt_mark_buffer_dirty(next_bh);
	mark_buffer_dirty(next_bh);
	nilfs_mdt_mark_buffer_dirty(prev_bh);
	mark_buffer_dirty(prev_bh);
	nilfs_mdt_mark_buffer_dirty(cp_bh);
	mark_buffer_dirty(cp_bh);
	nilfs_mdt_mark_buffer_dirty(header_bh);
	mark_buffer_dirty(header_bh);
	nilfs_mdt_mark_dirty(cpfile);
	nilfs_mdt_mark_dirty(cpfile);


	brelse(prev_bh);
	brelse(prev_bh);
Loading