Lines Matching refs:inode
73 # define ea_idebug(inode, f...) do { \ argument
75 inode->i_sb->s_id, inode->i_ino); \
92 static int ext2_xattr_set2(struct inode *, struct buffer_head *,
96 static struct buffer_head *ext2_xattr_cache_find(struct inode *,
149 ext2_xattr_get(struct inode *inode, int name_index, const char *name, in ext2_xattr_get() argument
158 ea_idebug(inode, "name=%d.%s, buffer=%p, buffer_size=%ld", in ext2_xattr_get()
167 down_read(&EXT2_I(inode)->xattr_sem); in ext2_xattr_get()
169 if (!EXT2_I(inode)->i_file_acl) in ext2_xattr_get()
171 ea_idebug(inode, "reading block %d", EXT2_I(inode)->i_file_acl); in ext2_xattr_get()
172 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_get()
181 bad_block: ext2_error(inode->i_sb, "ext2_xattr_get", in ext2_xattr_get()
182 "inode %ld: bad block %d", inode->i_ino, in ext2_xattr_get()
183 EXT2_I(inode)->i_file_acl); in ext2_xattr_get()
202 ea_idebug(inode, "cache insert failed"); in ext2_xattr_get()
210 if (size > inode->i_sb->s_blocksize || in ext2_xattr_get()
211 le16_to_cpu(entry->e_value_offs) + size > inode->i_sb->s_blocksize) in ext2_xattr_get()
215 ea_idebug(inode, "cache insert failed"); in ext2_xattr_get()
228 up_read(&EXT2_I(inode)->xattr_sem); in ext2_xattr_get()
246 struct inode *inode = d_inode(dentry); in ext2_xattr_list() local
253 ea_idebug(inode, "buffer=%p, buffer_size=%ld", in ext2_xattr_list()
256 down_read(&EXT2_I(inode)->xattr_sem); in ext2_xattr_list()
258 if (!EXT2_I(inode)->i_file_acl) in ext2_xattr_list()
260 ea_idebug(inode, "reading block %d", EXT2_I(inode)->i_file_acl); in ext2_xattr_list()
261 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_list()
270 bad_block: ext2_error(inode->i_sb, "ext2_xattr_list", in ext2_xattr_list()
271 "inode %ld: bad block %d", inode->i_ino, in ext2_xattr_list()
272 EXT2_I(inode)->i_file_acl); in ext2_xattr_list()
287 ea_idebug(inode, "cache insert failed"); in ext2_xattr_list()
313 up_read(&EXT2_I(inode)->xattr_sem); in ext2_xattr_list()
357 ext2_xattr_set(struct inode *inode, int name_index, const char *name, in ext2_xattr_set() argument
360 struct super_block *sb = inode->i_sb; in ext2_xattr_set()
380 ea_idebug(inode, "name=%d.%s, value=%p, value_len=%ld", in ext2_xattr_set()
390 down_write(&EXT2_I(inode)->xattr_sem); in ext2_xattr_set()
391 if (EXT2_I(inode)->i_file_acl) { in ext2_xattr_set()
393 bh = sb_bread(sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_set()
405 "inode %ld: bad block %d", inode->i_ino, in ext2_xattr_set()
406 EXT2_I(inode)->i_file_acl); in ext2_xattr_set()
599 error = ext2_xattr_set2(inode, bh, NULL); in ext2_xattr_set()
604 error = ext2_xattr_set2(inode, bh, header); in ext2_xattr_set()
611 up_write(&EXT2_I(inode)->xattr_sem); in ext2_xattr_set()
620 ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh, in ext2_xattr_set2() argument
623 struct super_block *sb = inode->i_sb; in ext2_xattr_set2()
628 new_bh = ext2_xattr_cache_find(inode, header); in ext2_xattr_set2()
638 error = dquot_alloc_block(inode, 1); in ext2_xattr_set2()
657 EXT2_I(inode)->i_block_group); in ext2_xattr_set2()
658 int block = ext2_new_block(inode, goal, &error); in ext2_xattr_set2()
661 ea_idebug(inode, "creating block %d", block); in ext2_xattr_set2()
665 ext2_free_blocks(inode, block, 1); in ext2_xattr_set2()
666 mark_inode_dirty(inode); in ext2_xattr_set2()
679 if (IS_SYNC(inode)) { in ext2_xattr_set2()
688 EXT2_I(inode)->i_file_acl = new_bh ? new_bh->b_blocknr : 0; in ext2_xattr_set2()
689 inode->i_ctime = CURRENT_TIME_SEC; in ext2_xattr_set2()
690 if (IS_SYNC(inode)) { in ext2_xattr_set2()
691 error = sync_inode_metadata(inode, 1); in ext2_xattr_set2()
697 dquot_free_block_nodirty(inode, 1); in ext2_xattr_set2()
698 mark_inode_dirty(inode); in ext2_xattr_set2()
703 mark_inode_dirty(inode); in ext2_xattr_set2()
721 ext2_free_blocks(inode, old_bh->b_blocknr, 1); in ext2_xattr_set2()
722 mark_inode_dirty(inode); in ext2_xattr_set2()
732 dquot_free_block_nodirty(inode, 1); in ext2_xattr_set2()
733 mark_inode_dirty(inode); in ext2_xattr_set2()
754 ext2_xattr_delete_inode(struct inode *inode) in ext2_xattr_delete_inode() argument
759 down_write(&EXT2_I(inode)->xattr_sem); in ext2_xattr_delete_inode()
760 if (!EXT2_I(inode)->i_file_acl) in ext2_xattr_delete_inode()
762 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_delete_inode()
764 ext2_error(inode->i_sb, "ext2_xattr_delete_inode", in ext2_xattr_delete_inode()
765 "inode %ld: block %d read error", inode->i_ino, in ext2_xattr_delete_inode()
766 EXT2_I(inode)->i_file_acl); in ext2_xattr_delete_inode()
772 ext2_error(inode->i_sb, "ext2_xattr_delete_inode", in ext2_xattr_delete_inode()
773 "inode %ld: bad block %d", inode->i_ino, in ext2_xattr_delete_inode()
774 EXT2_I(inode)->i_file_acl); in ext2_xattr_delete_inode()
782 ext2_free_blocks(inode, EXT2_I(inode)->i_file_acl, 1); in ext2_xattr_delete_inode()
794 if (IS_SYNC(inode)) in ext2_xattr_delete_inode()
796 dquot_free_block_nodirty(inode, 1); in ext2_xattr_delete_inode()
798 EXT2_I(inode)->i_file_acl = 0; in ext2_xattr_delete_inode()
802 up_write(&EXT2_I(inode)->xattr_sem); in ext2_xattr_delete_inode()
900 ext2_xattr_cache_find(struct inode *inode, struct ext2_xattr_header *header) in ext2_xattr_cache_find() argument
907 ea_idebug(inode, "looking for cached blocks [%x]", (int)hash); in ext2_xattr_cache_find()
909 ce = mb_cache_entry_find_first(ext2_xattr_cache, inode->i_sb->s_bdev, in ext2_xattr_cache_find()
920 bh = sb_bread(inode->i_sb, ce->e_block); in ext2_xattr_cache_find()
922 ext2_error(inode->i_sb, "ext2_xattr_cache_find", in ext2_xattr_cache_find()
924 inode->i_ino, (unsigned long) ce->e_block); in ext2_xattr_cache_find()
929 ea_idebug(inode, "block %ld refcount %d>%d", in ext2_xattr_cache_find()
942 ce = mb_cache_entry_find_next(ce, inode->i_sb->s_bdev, hash); in ext2_xattr_cache_find()