Lines Matching refs:bmap

93 		ret = -EINVAL;  /* Notify bmap layer of metadata corruption */
111 static int nilfs_direct_insert(struct nilfs_bmap *bmap, __u64 key, __u64 ptr)
120 if (nilfs_direct_get_ptr(bmap, key) != NILFS_BMAP_INVALID_PTR)
123 if (NILFS_BMAP_USE_VBN(bmap)) {
124 req.bpr_ptr = nilfs_direct_find_target_v(bmap, key);
125 dat = nilfs_bmap_get_dat(bmap);
127 ret = nilfs_bmap_prepare_alloc_ptr(bmap, &req, dat);
133 nilfs_bmap_commit_alloc_ptr(bmap, &req, dat);
134 nilfs_direct_set_ptr(bmap, key, req.bpr_ptr);
136 if (!nilfs_bmap_dirty(bmap))
137 nilfs_bmap_set_dirty(bmap);
139 if (NILFS_BMAP_USE_VBN(bmap))
140 nilfs_bmap_set_target_v(bmap, key, req.bpr_ptr);
142 nilfs_inode_add_blocks(bmap->b_inode, 1);
147 static int nilfs_direct_delete(struct nilfs_bmap *bmap, __u64 key)
154 nilfs_direct_get_ptr(bmap, key) == NILFS_BMAP_INVALID_PTR)
157 dat = NILFS_BMAP_USE_VBN(bmap) ? nilfs_bmap_get_dat(bmap) : NULL;
158 req.bpr_ptr = nilfs_direct_get_ptr(bmap, key);
160 ret = nilfs_bmap_prepare_end_ptr(bmap, &req, dat);
162 nilfs_bmap_commit_end_ptr(bmap, &req, dat);
163 nilfs_direct_set_ptr(bmap, key, NILFS_BMAP_INVALID_PTR);
164 nilfs_inode_sub_blocks(bmap->b_inode, 1);
202 static int nilfs_direct_check_insert(const struct nilfs_bmap *bmap, __u64 key)
228 int nilfs_direct_delete_and_convert(struct nilfs_bmap *bmap,
237 ret = bmap->b_ops->bop_delete(bmap, key);
242 if (bmap->b_ops->bop_clear != NULL)
243 bmap->b_ops->bop_clear(bmap);
246 dptrs = nilfs_direct_dptrs(bmap);
257 nilfs_direct_init(bmap);
261 static int nilfs_direct_propagate(struct nilfs_bmap *bmap,
270 if (!NILFS_BMAP_USE_VBN(bmap))
273 dat = nilfs_bmap_get_dat(bmap);
274 key = nilfs_bmap_data_get_key(bmap, bh);
275 ptr = nilfs_direct_get_ptr(bmap, key);
283 bmap->b_ptr_type == NILFS_BMAP_PTR_VS);
285 nilfs_direct_set_ptr(bmap, key, newreq.pr_entry_nr);
327 static int nilfs_direct_assign(struct nilfs_bmap *bmap,
335 key = nilfs_bmap_data_get_key(bmap, *bh);
337 nilfs_crit(bmap->b_inode->i_sb,
340 bmap->b_inode->i_ino, (unsigned long long)key);
343 ptr = nilfs_direct_get_ptr(bmap, key);
345 nilfs_crit(bmap->b_inode->i_sb,
348 bmap->b_inode->i_ino, (unsigned long long)ptr);
352 return NILFS_BMAP_USE_VBN(bmap) ?
353 nilfs_direct_assign_v(bmap, key, ptr, bh, blocknr, binfo) :
354 nilfs_direct_assign_p(bmap, key, ptr, bh, blocknr, binfo);
380 int nilfs_direct_init(struct nilfs_bmap *bmap)
382 bmap->b_ops = &nilfs_direct_ops;