Lines Matching refs:inode
42 nilfs_mdt_insert_new_block(struct inode *inode, unsigned long block, in nilfs_mdt_insert_new_block() argument
44 void (*init_block)(struct inode *, in nilfs_mdt_insert_new_block() argument
47 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_insert_new_block()
63 memset(kaddr + bh_offset(bh), 0, 1 << inode->i_blkbits); in nilfs_mdt_insert_new_block()
65 init_block(inode, bh, kaddr); in nilfs_mdt_insert_new_block()
71 nilfs_mdt_mark_dirty(inode); in nilfs_mdt_insert_new_block()
73 trace_nilfs2_mdt_insert_new_block(inode, inode->i_ino, block); in nilfs_mdt_insert_new_block()
78 static int nilfs_mdt_create_block(struct inode *inode, unsigned long block, in nilfs_mdt_create_block() argument
80 void (*init_block)(struct inode *, in nilfs_mdt_create_block() argument
84 struct super_block *sb = inode->i_sb; in nilfs_mdt_create_block()
92 bh = nilfs_grab_buffer(inode, inode->i_mapping, block, 0); in nilfs_mdt_create_block()
105 err = nilfs_mdt_insert_new_block(inode, block, bh, init_block); in nilfs_mdt_create_block()
126 nilfs_mdt_submit_block(struct inode *inode, unsigned long blkoff, in nilfs_mdt_submit_block() argument
133 bh = nilfs_grab_buffer(inode, inode->i_mapping, blkoff, 0); in nilfs_mdt_submit_block()
154 ret = nilfs_bmap_lookup(NILFS_I(inode)->i_bmap, blkoff, &blknum); in nilfs_mdt_submit_block()
159 map_bh(bh, inode->i_sb, (sector_t)blknum); in nilfs_mdt_submit_block()
166 trace_nilfs2_mdt_submit_block(inode, inode->i_ino, blkoff, mode); in nilfs_mdt_submit_block()
179 static int nilfs_mdt_read_block(struct inode *inode, unsigned long block, in nilfs_mdt_read_block() argument
187 err = nilfs_mdt_submit_block(inode, block, READ, &first_bh); in nilfs_mdt_read_block()
197 err = nilfs_mdt_submit_block(inode, blkoff, READA, &bh); in nilfs_mdt_read_block()
248 int nilfs_mdt_get_block(struct inode *inode, unsigned long blkoff, int create, in nilfs_mdt_get_block() argument
249 void (*init_block)(struct inode *, in nilfs_mdt_get_block() argument
257 ret = nilfs_mdt_read_block(inode, blkoff, !create, out_bh); in nilfs_mdt_get_block()
261 ret = nilfs_mdt_create_block(inode, blkoff, out_bh, init_block); in nilfs_mdt_get_block()
291 int nilfs_mdt_find_block(struct inode *inode, unsigned long start, in nilfs_mdt_find_block() argument
301 ret = nilfs_mdt_read_block(inode, start, true, out_bh); in nilfs_mdt_find_block()
309 ret = nilfs_bmap_seek_key(NILFS_I(inode)->i_bmap, start + 1, &next); in nilfs_mdt_find_block()
312 ret = nilfs_mdt_read_block(inode, next, true, out_bh); in nilfs_mdt_find_block()
335 int nilfs_mdt_delete_block(struct inode *inode, unsigned long block) in nilfs_mdt_delete_block() argument
337 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_delete_block()
342 nilfs_mdt_mark_dirty(inode); in nilfs_mdt_delete_block()
343 nilfs_mdt_forget_block(inode, block); in nilfs_mdt_delete_block()
363 int nilfs_mdt_forget_block(struct inode *inode, unsigned long block) in nilfs_mdt_forget_block() argument
366 (PAGE_CACHE_SHIFT - inode->i_blkbits); in nilfs_mdt_forget_block()
372 page = find_lock_page(inode->i_mapping, index); in nilfs_mdt_forget_block()
379 (PAGE_CACHE_SHIFT - inode->i_blkbits); in nilfs_mdt_forget_block()
391 invalidate_inode_pages2_range(inode->i_mapping, index, index) != 0) in nilfs_mdt_forget_block()
410 int nilfs_mdt_mark_block_dirty(struct inode *inode, unsigned long block) in nilfs_mdt_mark_block_dirty() argument
415 err = nilfs_mdt_read_block(inode, block, 0, &bh); in nilfs_mdt_mark_block_dirty()
419 nilfs_mdt_mark_dirty(inode); in nilfs_mdt_mark_block_dirty()
424 int nilfs_mdt_fetch_dirty(struct inode *inode) in nilfs_mdt_fetch_dirty() argument
426 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_fetch_dirty()
438 struct inode *inode = page->mapping->host; in nilfs_mdt_write_page() local
442 if (inode && (inode->i_sb->s_flags & MS_RDONLY)) { in nilfs_mdt_write_page()
457 if (!inode) in nilfs_mdt_write_page()
460 sb = inode->i_sb; in nilfs_mdt_write_page()
465 nilfs_flush_segment(sb, inode->i_ino); in nilfs_mdt_write_page()
479 int nilfs_mdt_init(struct inode *inode, gfp_t gfp_mask, size_t objsz) in nilfs_mdt_init() argument
488 inode->i_private = mi; in nilfs_mdt_init()
490 inode->i_mode = S_IFREG; in nilfs_mdt_init()
491 mapping_set_gfp_mask(inode->i_mapping, gfp_mask); in nilfs_mdt_init()
493 inode->i_op = &def_mdt_iops; in nilfs_mdt_init()
494 inode->i_fop = &def_mdt_fops; in nilfs_mdt_init()
495 inode->i_mapping->a_ops = &def_mdt_aops; in nilfs_mdt_init()
500 void nilfs_mdt_set_entry_size(struct inode *inode, unsigned entry_size, in nilfs_mdt_set_entry_size() argument
503 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_set_entry_size()
506 mi->mi_entries_per_block = (1 << inode->i_blkbits) / entry_size; in nilfs_mdt_set_entry_size()
515 int nilfs_mdt_setup_shadow_map(struct inode *inode, in nilfs_mdt_setup_shadow_map() argument
518 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_setup_shadow_map()
522 nilfs_mapping_init(&shadow->frozen_data, inode); in nilfs_mdt_setup_shadow_map()
524 nilfs_mapping_init(&shadow->frozen_btnodes, inode); in nilfs_mdt_setup_shadow_map()
533 int nilfs_mdt_save_to_shadow_map(struct inode *inode) in nilfs_mdt_save_to_shadow_map() argument
535 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_save_to_shadow_map()
536 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_save_to_shadow_map()
540 ret = nilfs_copy_dirty_pages(&shadow->frozen_data, inode->i_mapping); in nilfs_mdt_save_to_shadow_map()
554 int nilfs_mdt_freeze_buffer(struct inode *inode, struct buffer_head *bh) in nilfs_mdt_freeze_buffer() argument
556 struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow; in nilfs_mdt_freeze_buffer()
559 int blkbits = inode->i_blkbits; in nilfs_mdt_freeze_buffer()
586 nilfs_mdt_get_frozen_buffer(struct inode *inode, struct buffer_head *bh) in nilfs_mdt_get_frozen_buffer() argument
588 struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow; in nilfs_mdt_get_frozen_buffer()
596 n = bh_offset(bh) >> inode->i_blkbits; in nilfs_mdt_get_frozen_buffer()
622 void nilfs_mdt_restore_from_shadow_map(struct inode *inode) in nilfs_mdt_restore_from_shadow_map() argument
624 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_restore_from_shadow_map()
625 struct nilfs_inode_info *ii = NILFS_I(inode); in nilfs_mdt_restore_from_shadow_map()
631 nilfs_palloc_clear_cache(inode); in nilfs_mdt_restore_from_shadow_map()
633 nilfs_clear_dirty_pages(inode->i_mapping, true); in nilfs_mdt_restore_from_shadow_map()
634 nilfs_copy_back_pages(inode->i_mapping, &shadow->frozen_data); in nilfs_mdt_restore_from_shadow_map()
648 void nilfs_mdt_clear_shadow_map(struct inode *inode) in nilfs_mdt_clear_shadow_map() argument
650 struct nilfs_mdt_info *mi = NILFS_MDT(inode); in nilfs_mdt_clear_shadow_map()