Lines Matching refs:bmap

106 static int nilfs_direct_insert(struct nilfs_bmap *bmap, __u64 key, __u64 ptr)
115 if (nilfs_direct_get_ptr(bmap, key) != NILFS_BMAP_INVALID_PTR)
118 if (NILFS_BMAP_USE_VBN(bmap)) {
119 req.bpr_ptr = nilfs_direct_find_target_v(bmap, key);
120 dat = nilfs_bmap_get_dat(bmap);
122 ret = nilfs_bmap_prepare_alloc_ptr(bmap, &req, dat);
128 nilfs_bmap_commit_alloc_ptr(bmap, &req, dat);
129 nilfs_direct_set_ptr(bmap, key, req.bpr_ptr);
131 if (!nilfs_bmap_dirty(bmap))
132 nilfs_bmap_set_dirty(bmap);
134 if (NILFS_BMAP_USE_VBN(bmap))
135 nilfs_bmap_set_target_v(bmap, key, req.bpr_ptr);
137 nilfs_inode_add_blocks(bmap->b_inode, 1);
142 static int nilfs_direct_delete(struct nilfs_bmap *bmap, __u64 key)
149 nilfs_direct_get_ptr(bmap, key) == NILFS_BMAP_INVALID_PTR)
152 dat = NILFS_BMAP_USE_VBN(bmap) ? nilfs_bmap_get_dat(bmap) : NULL;
153 req.bpr_ptr = nilfs_direct_get_ptr(bmap, key);
155 ret = nilfs_bmap_prepare_end_ptr(bmap, &req, dat);
157 nilfs_bmap_commit_end_ptr(bmap, &req, dat);
158 nilfs_direct_set_ptr(bmap, key, NILFS_BMAP_INVALID_PTR);
159 nilfs_inode_sub_blocks(bmap->b_inode, 1);
197 static int nilfs_direct_check_insert(const struct nilfs_bmap *bmap, __u64 key)
223 int nilfs_direct_delete_and_convert(struct nilfs_bmap *bmap,
232 ret = bmap->b_ops->bop_delete(bmap, key);
237 if (bmap->b_ops->bop_clear != NULL)
238 bmap->b_ops->bop_clear(bmap);
241 dptrs = nilfs_direct_dptrs(bmap);
252 nilfs_direct_init(bmap);
256 static int nilfs_direct_propagate(struct nilfs_bmap *bmap,
265 if (!NILFS_BMAP_USE_VBN(bmap))
268 dat = nilfs_bmap_get_dat(bmap);
269 key = nilfs_bmap_data_get_key(bmap, bh);
270 ptr = nilfs_direct_get_ptr(bmap, key);
278 bmap->b_ptr_type == NILFS_BMAP_PTR_VS);
280 nilfs_direct_set_ptr(bmap, key, newreq.pr_entry_nr);
322 static int nilfs_direct_assign(struct nilfs_bmap *bmap,
330 key = nilfs_bmap_data_get_key(bmap, *bh);
332 nilfs_crit(bmap->b_inode->i_sb,
335 bmap->b_inode->i_ino, (unsigned long long)key);
338 ptr = nilfs_direct_get_ptr(bmap, key);
340 nilfs_crit(bmap->b_inode->i_sb,
343 bmap->b_inode->i_ino, (unsigned long long)ptr);
347 return NILFS_BMAP_USE_VBN(bmap) ?
348 nilfs_direct_assign_v(bmap, key, ptr, bh, blocknr, binfo) :
349 nilfs_direct_assign_p(bmap, key, ptr, bh, blocknr, binfo);
375 int nilfs_direct_init(struct nilfs_bmap *bmap)
377 bmap->b_ops = &nilfs_direct_ops;