Lines Matching refs:inode

41 nilfs_mdt_insert_new_block(struct inode *inode, unsigned long block,  in nilfs_mdt_insert_new_block()  argument
43 void (*init_block)(struct inode *, in nilfs_mdt_insert_new_block() argument
46 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_insert_new_block()
62 memset(kaddr + bh_offset(bh), 0, 1 << inode->i_blkbits); in nilfs_mdt_insert_new_block()
64 init_block(inode, bh, kaddr); in nilfs_mdt_insert_new_block()
70 nilfs_mdt_mark_dirty(inode); in nilfs_mdt_insert_new_block()
74 static int nilfs_mdt_create_block(struct inode *inode, unsigned long block, in nilfs_mdt_create_block() argument
76 void (*init_block)(struct inode *, in nilfs_mdt_create_block() argument
80 struct super_block *sb = inode->i_sb; in nilfs_mdt_create_block()
88 bh = nilfs_grab_buffer(inode, inode->i_mapping, block, 0); in nilfs_mdt_create_block()
101 err = nilfs_mdt_insert_new_block(inode, block, bh, init_block); in nilfs_mdt_create_block()
122 nilfs_mdt_submit_block(struct inode *inode, unsigned long blkoff, in nilfs_mdt_submit_block() argument
129 bh = nilfs_grab_buffer(inode, inode->i_mapping, blkoff, 0); in nilfs_mdt_submit_block()
150 ret = nilfs_bmap_lookup(NILFS_I(inode)->i_bmap, blkoff, &blknum); in nilfs_mdt_submit_block()
155 map_bh(bh, inode->i_sb, (sector_t)blknum); in nilfs_mdt_submit_block()
173 static int nilfs_mdt_read_block(struct inode *inode, unsigned long block, in nilfs_mdt_read_block() argument
181 err = nilfs_mdt_submit_block(inode, block, READ, &first_bh); in nilfs_mdt_read_block()
191 err = nilfs_mdt_submit_block(inode, blkoff, READA, &bh); in nilfs_mdt_read_block()
242 int nilfs_mdt_get_block(struct inode *inode, unsigned long blkoff, int create, in nilfs_mdt_get_block() argument
243 void (*init_block)(struct inode *, in nilfs_mdt_get_block() argument
251 ret = nilfs_mdt_read_block(inode, blkoff, !create, out_bh); in nilfs_mdt_get_block()
255 ret = nilfs_mdt_create_block(inode, blkoff, out_bh, init_block); in nilfs_mdt_get_block()
285 int nilfs_mdt_find_block(struct inode *inode, unsigned long start, in nilfs_mdt_find_block() argument
295 ret = nilfs_mdt_read_block(inode, start, true, out_bh); in nilfs_mdt_find_block()
303 ret = nilfs_bmap_seek_key(NILFS_I(inode)->i_bmap, start + 1, &next); in nilfs_mdt_find_block()
306 ret = nilfs_mdt_read_block(inode, next, true, out_bh); in nilfs_mdt_find_block()
329 int nilfs_mdt_delete_block(struct inode *inode, unsigned long block) in nilfs_mdt_delete_block() argument
331 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_delete_block()
336 nilfs_mdt_mark_dirty(inode); in nilfs_mdt_delete_block()
337 nilfs_mdt_forget_block(inode, block); in nilfs_mdt_delete_block()
357 int nilfs_mdt_forget_block(struct inode *inode, unsigned long block) in nilfs_mdt_forget_block() argument
360 (PAGE_CACHE_SHIFT - inode->i_blkbits); in nilfs_mdt_forget_block()
366 page = find_lock_page(inode->i_mapping, index); in nilfs_mdt_forget_block()
373 (PAGE_CACHE_SHIFT - inode->i_blkbits); in nilfs_mdt_forget_block()
385 invalidate_inode_pages2_range(inode->i_mapping, index, index) != 0) in nilfs_mdt_forget_block()
404 int nilfs_mdt_mark_block_dirty(struct inode *inode, unsigned long block) in nilfs_mdt_mark_block_dirty() argument
409 err = nilfs_mdt_read_block(inode, block, 0, &bh); in nilfs_mdt_mark_block_dirty()
413 nilfs_mdt_mark_dirty(inode); in nilfs_mdt_mark_block_dirty()
418 int nilfs_mdt_fetch_dirty(struct inode *inode) in nilfs_mdt_fetch_dirty() argument
420 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_fetch_dirty()
432 struct inode *inode = page->mapping->host; in nilfs_mdt_write_page() local
436 if (inode && (inode->i_sb->s_flags & MS_RDONLY)) { in nilfs_mdt_write_page()
451 if (!inode) in nilfs_mdt_write_page()
454 sb = inode->i_sb; in nilfs_mdt_write_page()
459 nilfs_flush_segment(sb, inode->i_ino); in nilfs_mdt_write_page()
473 int nilfs_mdt_init(struct inode *inode, gfp_t gfp_mask, size_t objsz) in nilfs_mdt_init() argument
482 inode->i_private = mi; in nilfs_mdt_init()
484 inode->i_mode = S_IFREG; in nilfs_mdt_init()
485 mapping_set_gfp_mask(inode->i_mapping, gfp_mask); in nilfs_mdt_init()
487 inode->i_op = &def_mdt_iops; in nilfs_mdt_init()
488 inode->i_fop = &def_mdt_fops; in nilfs_mdt_init()
489 inode->i_mapping->a_ops = &def_mdt_aops; in nilfs_mdt_init()
494 void nilfs_mdt_set_entry_size(struct inode *inode, unsigned entry_size, in nilfs_mdt_set_entry_size() argument
497 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_set_entry_size()
500 mi->mi_entries_per_block = (1 << inode->i_blkbits) / entry_size; in nilfs_mdt_set_entry_size()
509 int nilfs_mdt_setup_shadow_map(struct inode *inode, in nilfs_mdt_setup_shadow_map() argument
512 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_setup_shadow_map()
516 nilfs_mapping_init(&shadow->frozen_data, inode); in nilfs_mdt_setup_shadow_map()
518 nilfs_mapping_init(&shadow->frozen_btnodes, inode); in nilfs_mdt_setup_shadow_map()
527 int nilfs_mdt_save_to_shadow_map(struct inode *inode) in nilfs_mdt_save_to_shadow_map() argument
529 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_save_to_shadow_map()
530 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_save_to_shadow_map()
534 ret = nilfs_copy_dirty_pages(&shadow->frozen_data, inode->i_mapping); in nilfs_mdt_save_to_shadow_map()
548 int nilfs_mdt_freeze_buffer(struct inode *inode, struct buffer_head *bh) in nilfs_mdt_freeze_buffer() argument
550 struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow; in nilfs_mdt_freeze_buffer()
553 int blkbits = inode->i_blkbits; in nilfs_mdt_freeze_buffer()
580 nilfs_mdt_get_frozen_buffer(struct inode *inode, struct buffer_head *bh) in nilfs_mdt_get_frozen_buffer() argument
582 struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow; in nilfs_mdt_get_frozen_buffer()
590 n = bh_offset(bh) >> inode->i_blkbits; in nilfs_mdt_get_frozen_buffer()
616 void nilfs_mdt_restore_from_shadow_map(struct inode *inode) in nilfs_mdt_restore_from_shadow_map() argument
618 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_restore_from_shadow_map()
619 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_restore_from_shadow_map()
625 nilfs_palloc_clear_cache(inode); in nilfs_mdt_restore_from_shadow_map()
627 nilfs_clear_dirty_pages(inode->i_mapping, true); in nilfs_mdt_restore_from_shadow_map()
628 nilfs_copy_back_pages(inode->i_mapping, &shadow->frozen_data); in nilfs_mdt_restore_from_shadow_map()
642 void nilfs_mdt_clear_shadow_map(struct inode *inode) in nilfs_mdt_clear_shadow_map() argument
644 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_clear_shadow_map()