Lines Matching refs:inode

64 #define IHDR(inode, raw_inode) \  argument
68 EXT3_I(inode)->i_extra_isize))
72 # define ea_idebug(inode, f...) do { \ argument
74 inode->i_sb->s_id, inode->i_ino); \
92 static struct buffer_head *ext3_xattr_cache_find(struct inode *,
211 ext3_xattr_block_get(struct inode *inode, int name_index, const char *name, in ext3_xattr_block_get() argument
219 ea_idebug(inode, "name=%d.%s, buffer=%p, buffer_size=%ld", in ext3_xattr_block_get()
223 if (!EXT3_I(inode)->i_file_acl) in ext3_xattr_block_get()
225 ea_idebug(inode, "reading block %u", EXT3_I(inode)->i_file_acl); in ext3_xattr_block_get()
226 bh = sb_bread(inode->i_sb, EXT3_I(inode)->i_file_acl); in ext3_xattr_block_get()
232 bad_block: ext3_error(inode->i_sb, __func__, in ext3_xattr_block_get()
233 "inode %lu: bad block "E3FSBLK, inode->i_ino, in ext3_xattr_block_get()
234 EXT3_I(inode)->i_file_acl); in ext3_xattr_block_get()
261 ext3_xattr_ibody_get(struct inode *inode, int name_index, const char *name, in ext3_xattr_ibody_get() argument
272 if (!ext3_test_inode_state(inode, EXT3_STATE_XATTR)) in ext3_xattr_ibody_get()
274 error = ext3_get_inode_loc(inode, &iloc); in ext3_xattr_ibody_get()
278 header = IHDR(inode, raw_inode); in ext3_xattr_ibody_get()
280 end = (void *)raw_inode + EXT3_SB(inode->i_sb)->s_inode_size; in ext3_xattr_ibody_get()
314 ext3_xattr_get(struct inode *inode, int name_index, const char *name, in ext3_xattr_get() argument
319 down_read(&EXT3_I(inode)->xattr_sem); in ext3_xattr_get()
320 error = ext3_xattr_ibody_get(inode, name_index, name, buffer, in ext3_xattr_get()
323 error = ext3_xattr_block_get(inode, name_index, name, buffer, in ext3_xattr_get()
325 up_read(&EXT3_I(inode)->xattr_sem); in ext3_xattr_get()
358 struct inode *inode = d_inode(dentry); in ext3_xattr_block_list() local
362 ea_idebug(inode, "buffer=%p, buffer_size=%ld", in ext3_xattr_block_list()
366 if (!EXT3_I(inode)->i_file_acl) in ext3_xattr_block_list()
368 ea_idebug(inode, "reading block %u", EXT3_I(inode)->i_file_acl); in ext3_xattr_block_list()
369 bh = sb_bread(inode->i_sb, EXT3_I(inode)->i_file_acl); in ext3_xattr_block_list()
376 ext3_error(inode->i_sb, __func__, in ext3_xattr_block_list()
377 "inode %lu: bad block "E3FSBLK, inode->i_ino, in ext3_xattr_block_list()
378 EXT3_I(inode)->i_file_acl); in ext3_xattr_block_list()
394 struct inode *inode = d_inode(dentry); in ext3_xattr_ibody_list() local
401 if (!ext3_test_inode_state(inode, EXT3_STATE_XATTR)) in ext3_xattr_ibody_list()
403 error = ext3_get_inode_loc(inode, &iloc); in ext3_xattr_ibody_list()
407 header = IHDR(inode, raw_inode); in ext3_xattr_ibody_list()
408 end = (void *)raw_inode + EXT3_SB(inode->i_sb)->s_inode_size; in ext3_xattr_ibody_list()
473 ext3_xattr_release_block(handle_t *handle, struct inode *inode, in ext3_xattr_release_block() argument
490 ext3_free_blocks(handle, inode, bh->b_blocknr, 1); in ext3_xattr_release_block()
492 ext3_forget(handle, 1, inode, bh, bh->b_blocknr); in ext3_xattr_release_block()
496 if (IS_SYNC(inode)) in ext3_xattr_release_block()
498 dquot_free_block(inode, 1); in ext3_xattr_release_block()
506 ext3_std_error(inode->i_sb, error); in ext3_xattr_release_block()
631 ext3_xattr_block_find(struct inode *inode, struct ext3_xattr_info *i, in ext3_xattr_block_find() argument
634 struct super_block *sb = inode->i_sb; in ext3_xattr_block_find()
637 ea_idebug(inode, "name=%d.%s, value=%p, value_len=%ld", in ext3_xattr_block_find()
640 if (EXT3_I(inode)->i_file_acl) { in ext3_xattr_block_find()
642 bs->bh = sb_bread(sb, EXT3_I(inode)->i_file_acl); in ext3_xattr_block_find()
651 "inode %lu: bad block "E3FSBLK, inode->i_ino, in ext3_xattr_block_find()
652 EXT3_I(inode)->i_file_acl); in ext3_xattr_block_find()
674 ext3_xattr_block_set(handle_t *handle, struct inode *inode, in ext3_xattr_block_set() argument
678 struct super_block *sb = inode->i_sb; in ext3_xattr_block_set()
764 new_bh = ext3_xattr_cache_find(inode, header(s->base), &ce); in ext3_xattr_block_set()
772 error = dquot_alloc_block(inode, 1); in ext3_xattr_block_set()
799 EXT3_I(inode)->i_block_group); in ext3_xattr_block_set()
807 mutex_lock(&EXT3_I(inode)->truncate_mutex); in ext3_xattr_block_set()
808 block = ext3_new_block(handle, inode, goal, &error); in ext3_xattr_block_set()
809 mutex_unlock(&EXT3_I(inode)->truncate_mutex); in ext3_xattr_block_set()
812 ea_idebug(inode, "creating block %d", block); in ext3_xattr_block_set()
817 ext3_free_blocks(handle, inode, block, 1); in ext3_xattr_block_set()
838 EXT3_I(inode)->i_file_acl = new_bh ? new_bh->b_blocknr : 0; in ext3_xattr_block_set()
842 ext3_xattr_release_block(handle, inode, bs->bh); in ext3_xattr_block_set()
855 dquot_free_block(inode, 1); in ext3_xattr_block_set()
859 ext3_error(inode->i_sb, __func__, in ext3_xattr_block_set()
860 "inode %lu: bad block "E3FSBLK, inode->i_ino, in ext3_xattr_block_set()
861 EXT3_I(inode)->i_file_acl); in ext3_xattr_block_set()
873 ext3_xattr_ibody_find(struct inode *inode, struct ext3_xattr_info *i, in ext3_xattr_ibody_find() argument
880 if (EXT3_I(inode)->i_extra_isize == 0) in ext3_xattr_ibody_find()
883 header = IHDR(inode, raw_inode); in ext3_xattr_ibody_find()
886 is->s.end = (void *)raw_inode + EXT3_SB(inode->i_sb)->s_inode_size; in ext3_xattr_ibody_find()
887 if (ext3_test_inode_state(inode, EXT3_STATE_XATTR)) { in ext3_xattr_ibody_find()
903 ext3_xattr_ibody_set(handle_t *handle, struct inode *inode, in ext3_xattr_ibody_set() argument
911 if (EXT3_I(inode)->i_extra_isize == 0) in ext3_xattr_ibody_set()
916 header = IHDR(inode, ext3_raw_inode(&is->iloc)); in ext3_xattr_ibody_set()
919 ext3_set_inode_state(inode, EXT3_STATE_XATTR); in ext3_xattr_ibody_set()
922 ext3_clear_inode_state(inode, EXT3_STATE_XATTR); in ext3_xattr_ibody_set()
940 ext3_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, in ext3_xattr_set_handle() argument
963 down_write(&EXT3_I(inode)->xattr_sem); in ext3_xattr_set_handle()
964 error = ext3_get_inode_loc(inode, &is.iloc); in ext3_xattr_set_handle()
972 if (ext3_test_inode_state(inode, EXT3_STATE_NEW)) { in ext3_xattr_set_handle()
974 memset(raw_inode, 0, EXT3_SB(inode->i_sb)->s_inode_size); in ext3_xattr_set_handle()
975 ext3_clear_inode_state(inode, EXT3_STATE_NEW); in ext3_xattr_set_handle()
978 error = ext3_xattr_ibody_find(inode, &i, &is); in ext3_xattr_set_handle()
982 error = ext3_xattr_block_find(inode, &i, &bs); in ext3_xattr_set_handle()
999 error = ext3_xattr_ibody_set(handle, inode, &i, &is); in ext3_xattr_set_handle()
1001 error = ext3_xattr_block_set(handle, inode, &i, &bs); in ext3_xattr_set_handle()
1003 error = ext3_xattr_ibody_set(handle, inode, &i, &is); in ext3_xattr_set_handle()
1006 error = ext3_xattr_block_set(handle, inode, &i, &bs); in ext3_xattr_set_handle()
1008 if (EXT3_I(inode)->i_file_acl && !bs.s.base) { in ext3_xattr_set_handle()
1009 error = ext3_xattr_block_find(inode, &i, &bs); in ext3_xattr_set_handle()
1013 error = ext3_xattr_block_set(handle, inode, &i, &bs); in ext3_xattr_set_handle()
1018 error = ext3_xattr_ibody_set(handle, inode, &i, in ext3_xattr_set_handle()
1024 ext3_xattr_update_super_block(handle, inode->i_sb); in ext3_xattr_set_handle()
1025 inode->i_ctime = CURRENT_TIME_SEC; in ext3_xattr_set_handle()
1026 error = ext3_mark_iloc_dirty(handle, inode, &is.iloc); in ext3_xattr_set_handle()
1032 if (IS_SYNC(inode)) in ext3_xattr_set_handle()
1039 up_write(&EXT3_I(inode)->xattr_sem); in ext3_xattr_set_handle()
1052 ext3_xattr_set(struct inode *inode, int name_index, const char *name, in ext3_xattr_set() argument
1059 handle = ext3_journal_start(inode, EXT3_DATA_TRANS_BLOCKS(inode->i_sb)); in ext3_xattr_set()
1065 error = ext3_xattr_set_handle(handle, inode, name_index, name, in ext3_xattr_set()
1069 ext3_should_retry_alloc(inode->i_sb, &retries)) in ext3_xattr_set()
1086 ext3_xattr_delete_inode(handle_t *handle, struct inode *inode) in ext3_xattr_delete_inode() argument
1090 if (!EXT3_I(inode)->i_file_acl) in ext3_xattr_delete_inode()
1092 bh = sb_bread(inode->i_sb, EXT3_I(inode)->i_file_acl); in ext3_xattr_delete_inode()
1094 ext3_error(inode->i_sb, __func__, in ext3_xattr_delete_inode()
1095 "inode %lu: block "E3FSBLK" read error", inode->i_ino, in ext3_xattr_delete_inode()
1096 EXT3_I(inode)->i_file_acl); in ext3_xattr_delete_inode()
1101 ext3_error(inode->i_sb, __func__, in ext3_xattr_delete_inode()
1102 "inode %lu: bad block "E3FSBLK, inode->i_ino, in ext3_xattr_delete_inode()
1103 EXT3_I(inode)->i_file_acl); in ext3_xattr_delete_inode()
1106 ext3_xattr_release_block(handle, inode, bh); in ext3_xattr_delete_inode()
1107 EXT3_I(inode)->i_file_acl = 0; in ext3_xattr_delete_inode()
1206 ext3_xattr_cache_find(struct inode *inode, struct ext3_xattr_header *header, in ext3_xattr_cache_find() argument
1214 ea_idebug(inode, "looking for cached blocks [%x]", (int)hash); in ext3_xattr_cache_find()
1216 ce = mb_cache_entry_find_first(ext3_xattr_cache, inode->i_sb->s_bdev, in ext3_xattr_cache_find()
1226 bh = sb_bread(inode->i_sb, ce->e_block); in ext3_xattr_cache_find()
1228 ext3_error(inode->i_sb, __func__, in ext3_xattr_cache_find()
1230 inode->i_ino, (unsigned long) ce->e_block); in ext3_xattr_cache_find()
1233 ea_idebug(inode, "block %lu refcount %d>=%d", in ext3_xattr_cache_find()
1242 ce = mb_cache_entry_find_next(ce, inode->i_sb->s_bdev, hash); in ext3_xattr_cache_find()