Lines Matching refs:inode

75 # define ea_idebug(inode, f...) do { \  argument
77 inode->i_sb->s_id, inode->i_ino); \
88 # define ea_idebug(inode, f...) no_printk(f) argument
92 static int ext2_xattr_set2(struct inode *, struct buffer_head *,
96 static struct buffer_head *ext2_xattr_cache_find(struct inode *,
122 #define EA_BLOCK_CACHE(inode) (EXT2_SB(inode->i_sb)->s_ea_block_cache) argument
196 ext2_xattr_get(struct inode *inode, int name_index, const char *name, in ext2_xattr_get() argument
204 struct mb_cache *ea_block_cache = EA_BLOCK_CACHE(inode); in ext2_xattr_get()
206 ea_idebug(inode, "name=%d.%s, buffer=%p, buffer_size=%ld", in ext2_xattr_get()
215 down_read(&EXT2_I(inode)->xattr_sem); in ext2_xattr_get()
217 if (!EXT2_I(inode)->i_file_acl) in ext2_xattr_get()
219 ea_idebug(inode, "reading block %d", EXT2_I(inode)->i_file_acl); in ext2_xattr_get()
220 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_get()
229 ext2_error(inode->i_sb, "ext2_xattr_get", in ext2_xattr_get()
230 "inode %ld: bad block %d", inode->i_ino, in ext2_xattr_get()
231 EXT2_I(inode)->i_file_acl); in ext2_xattr_get()
240 inode->i_sb->s_blocksize)) in ext2_xattr_get()
253 ea_idebug(inode, "cache insert failed"); in ext2_xattr_get()
259 ea_idebug(inode, "cache insert failed"); in ext2_xattr_get()
272 up_read(&EXT2_I(inode)->xattr_sem); in ext2_xattr_get()
290 struct inode *inode = d_inode(dentry); in ext2_xattr_list() local
296 struct mb_cache *ea_block_cache = EA_BLOCK_CACHE(inode); in ext2_xattr_list()
298 ea_idebug(inode, "buffer=%p, buffer_size=%ld", in ext2_xattr_list()
301 down_read(&EXT2_I(inode)->xattr_sem); in ext2_xattr_list()
303 if (!EXT2_I(inode)->i_file_acl) in ext2_xattr_list()
305 ea_idebug(inode, "reading block %d", EXT2_I(inode)->i_file_acl); in ext2_xattr_list()
306 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_list()
315 ext2_error(inode->i_sb, "ext2_xattr_list", in ext2_xattr_list()
316 "inode %ld: bad block %d", inode->i_ino, in ext2_xattr_list()
317 EXT2_I(inode)->i_file_acl); in ext2_xattr_list()
326 inode->i_sb->s_blocksize)) in ext2_xattr_list()
331 ea_idebug(inode, "cache insert failed"); in ext2_xattr_list()
361 up_read(&EXT2_I(inode)->xattr_sem); in ext2_xattr_list()
406 ext2_xattr_set(struct inode *inode, int name_index, const char *name, in ext2_xattr_set() argument
409 struct super_block *sb = inode->i_sb; in ext2_xattr_set()
429 ea_idebug(inode, "name=%d.%s, value=%p, value_len=%ld", in ext2_xattr_set()
439 error = dquot_initialize(inode); in ext2_xattr_set()
442 down_write(&EXT2_I(inode)->xattr_sem); in ext2_xattr_set()
443 if (EXT2_I(inode)->i_file_acl) { in ext2_xattr_set()
445 bh = sb_bread(sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_set()
457 "inode %ld: bad block %d", inode->i_ino, in ext2_xattr_set()
458 EXT2_I(inode)->i_file_acl); in ext2_xattr_set()
526 oe = mb_cache_entry_delete_or_get(EA_BLOCK_CACHE(inode), in ext2_xattr_set()
535 mb_cache_entry_put(EA_BLOCK_CACHE(inode), oe); in ext2_xattr_set()
636 error = ext2_xattr_set2(inode, bh, NULL); in ext2_xattr_set()
641 error = ext2_xattr_set2(inode, bh, header); in ext2_xattr_set()
648 up_write(&EXT2_I(inode)->xattr_sem); in ext2_xattr_set()
653 static void ext2_xattr_release_block(struct inode *inode, in ext2_xattr_release_block() argument
656 struct mb_cache *ea_block_cache = EA_BLOCK_CACHE(inode); in ext2_xattr_release_block()
683 ext2_free_blocks(inode, bh->b_blocknr, 1); in ext2_xattr_release_block()
692 dquot_free_block(inode, 1); in ext2_xattr_release_block()
697 if (IS_SYNC(inode)) in ext2_xattr_release_block()
706 ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh, in ext2_xattr_set2() argument
709 struct super_block *sb = inode->i_sb; in ext2_xattr_set2()
712 struct mb_cache *ea_block_cache = EA_BLOCK_CACHE(inode); in ext2_xattr_set2()
715 new_bh = ext2_xattr_cache_find(inode, header); in ext2_xattr_set2()
725 error = dquot_alloc_block(inode, 1); in ext2_xattr_set2()
744 EXT2_I(inode)->i_block_group); in ext2_xattr_set2()
746 ext2_fsblk_t block = ext2_new_blocks(inode, goal, in ext2_xattr_set2()
751 ea_idebug(inode, "creating block %lu", block); in ext2_xattr_set2()
755 ext2_free_blocks(inode, block, 1); in ext2_xattr_set2()
756 mark_inode_dirty(inode); in ext2_xattr_set2()
769 if (IS_SYNC(inode)) { in ext2_xattr_set2()
778 EXT2_I(inode)->i_file_acl = new_bh ? new_bh->b_blocknr : 0; in ext2_xattr_set2()
779 inode_set_ctime_current(inode); in ext2_xattr_set2()
780 if (IS_SYNC(inode)) { in ext2_xattr_set2()
781 error = sync_inode_metadata(inode, 1); in ext2_xattr_set2()
787 dquot_free_block_nodirty(inode, 1); in ext2_xattr_set2()
788 mark_inode_dirty(inode); in ext2_xattr_set2()
793 mark_inode_dirty(inode); in ext2_xattr_set2()
801 ext2_xattr_release_block(inode, old_bh); in ext2_xattr_set2()
817 ext2_xattr_delete_inode(struct inode *inode) in ext2_xattr_delete_inode() argument
820 struct ext2_sb_info *sbi = EXT2_SB(inode->i_sb); in ext2_xattr_delete_inode()
829 if (WARN_ON_ONCE(!down_write_trylock(&EXT2_I(inode)->xattr_sem))) in ext2_xattr_delete_inode()
831 if (!EXT2_I(inode)->i_file_acl) in ext2_xattr_delete_inode()
834 if (!ext2_data_block_valid(sbi, EXT2_I(inode)->i_file_acl, 1)) { in ext2_xattr_delete_inode()
835 ext2_error(inode->i_sb, "ext2_xattr_delete_inode", in ext2_xattr_delete_inode()
837 inode->i_ino, EXT2_I(inode)->i_file_acl); in ext2_xattr_delete_inode()
841 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_delete_inode()
843 ext2_error(inode->i_sb, "ext2_xattr_delete_inode", in ext2_xattr_delete_inode()
844 "inode %ld: block %d read error", inode->i_ino, in ext2_xattr_delete_inode()
845 EXT2_I(inode)->i_file_acl); in ext2_xattr_delete_inode()
850 ext2_error(inode->i_sb, "ext2_xattr_delete_inode", in ext2_xattr_delete_inode()
851 "inode %ld: bad block %d", inode->i_ino, in ext2_xattr_delete_inode()
852 EXT2_I(inode)->i_file_acl); in ext2_xattr_delete_inode()
855 ext2_xattr_release_block(inode, bh); in ext2_xattr_delete_inode()
856 EXT2_I(inode)->i_file_acl = 0; in ext2_xattr_delete_inode()
860 up_write(&EXT2_I(inode)->xattr_sem); in ext2_xattr_delete_inode()
938 ext2_xattr_cache_find(struct inode *inode, struct ext2_xattr_header *header) in ext2_xattr_cache_find() argument
942 struct mb_cache *ea_block_cache = EA_BLOCK_CACHE(inode); in ext2_xattr_cache_find()
946 ea_idebug(inode, "looking for cached blocks [%x]", (int)hash); in ext2_xattr_cache_find()
952 bh = sb_bread(inode->i_sb, ce->e_value); in ext2_xattr_cache_find()
954 ext2_error(inode->i_sb, "ext2_xattr_cache_find", in ext2_xattr_cache_find()
956 inode->i_ino, (unsigned long) ce->e_value); in ext2_xattr_cache_find()
961 ea_idebug(inode, "block %ld refcount %d>%d", in ext2_xattr_cache_find()