Lines Matching defs:inode

157 	/* target inode for block we're allocating */
158 struct inode *inode;
161 /* logical block in target inode */
225 struct inode *inode; /* file being written to */
243 #define EXT4_BAD_INO 1 /* Bad blocks inode */
244 #define EXT4_ROOT_INO 2 /* Root inode */
245 #define EXT4_USR_QUOTA_INO 3 /* User quota inode */
246 #define EXT4_GRP_QUOTA_INO 4 /* Group quota inode */
247 #define EXT4_BOOT_LOADER_INO 5 /* Boot loader inode */
248 #define EXT4_UNDEL_DIR_INO 6 /* Undelete directory inode */
249 #define EXT4_RESIZE_INO 7 /* Reserved group descriptors inode */
250 #define EXT4_JOURNAL_INO 8 /* Journal inode */
252 /* First non-reserved inode for old ext4 filesystems */
425 #define EXT4_VERITY_FL 0x00100000 /* Verity protected inode */
496 /* Mask out flags that are inappropriate for the given type of inode. */
533 EXT4_INODE_VERITY = 20, /* Verity protected inode */
537 EXT4_INODE_INLINE_DATA = 28, /* Data in inode. */
593 __u64 inode_bitmap; /* Absolute block number of inode bitmap */
594 __u64 inode_table; /* Absolute block number of inode table start */
627 INODE_BITMAP, /* inode bitmap */
628 INODE_TABLE, /* inode tables */
765 * Structure of an inode on the disk
801 __le16 l_i_checksum_lo;/* crc32c(uuid+inum+inode) LE */
818 __le16 i_checksum_hi; /* crc32c(uuid+inum+inode) BE */
842 * Extended fields will fit into an inode if the filesystem was formatted
847 * the extended inode fields is critical for correct filesystem operation.
848 * This macro checks if a certain field fits in the inode. Note that
849 * inode-size = GOOD_OLD_INODE_SIZE + i_extra_isize
892 #define EXT4_INODE_SET_XTIME(xtime, inode, raw_inode) \
894 if (EXT4_FITS_IN_INODE(raw_inode, EXT4_I(inode), xtime ## _extra)) {\
895 (raw_inode)->xtime = cpu_to_le32((inode)->xtime.tv_sec); \
897 ext4_encode_extra_time(&(inode)->xtime); \
900 (raw_inode)->xtime = cpu_to_le32(clamp_t(int32_t, (inode)->xtime.tv_sec, S32_MIN, S32_MAX)); \
912 #define EXT4_INODE_GET_XTIME(xtime, inode, raw_inode) \
914 (inode)->xtime.tv_sec = (signed)le32_to_cpu((raw_inode)->xtime); \
915 if (EXT4_FITS_IN_INODE(raw_inode, EXT4_I(inode), xtime ## _extra)) { \
916 ext4_decode_extra_time(&(inode)->xtime, \
920 (inode)->xtime.tv_nsec = 0; \
972 * allocate blocks to the quota inode during ext4_map_blocks(), while
973 * holding i_data_sem for a normal (non-quota) inode. Since we don't
974 * do quota tracking for the quota inode, this avoids deadlock (as
979 * I_DATA_SEM_OTHER - Used by move_inode.c for the second normal inode
980 * where the second inode has larger inode number
994 * fourth extended file system inode data in memory
1003 * this file's inode. Constant across the lifetime of the inode,
1005 * place a file's data blocks near its inode block, and new inodes
1006 * near to their parent directory's inode.
1039 /* Number of ongoing updates on this inode */
1042 /* Fast commit wait queue for this inode */
1049 * i_disksize keeps track of what the inode size is ON DISK, not
1057 * into the on-disk inode when writing inodes out, instead of i_size.
1067 * ext4_getblock(). In the 2.4 ext2 design, great chunks of inode's
1070 * truncate, the inode and all the metadata blocks *must* be in a
1079 * a section of the inode that is being punched. We cannot easily use
1085 struct inode vfs_inode;
1088 spinlock_t i_raw_lock; /* protects updates to the raw inode */
1092 * struct timespec64 i_{a,c,m}time in the generic inode.
1146 * Transactions that contain inode's metadata needed to complete
1156 /* Precomputed uuid+inum+igen checksum for seeding inode checksums */
1329 __le32 s_first_ino; /* First non-reserved inode */
1330 __le16 s_inode_size; /* size of inode structure */
1350 /*E0*/ __le32 s_journal_inum; /* inode number of journal file */
1360 __le32 s_jnl_blocks[17]; /* Backup of the journal inode */
1381 __le32 s_snapshot_list; /* inode number of the head of the
1386 __le32 s_first_error_ino; /* inode involved in first error */
1391 __le32 s_last_error_ino; /* inode involved in last error */
1397 __le32 s_usr_quota_inum; /* inode for tracking user quota */
1398 __le32 s_grp_quota_inum; /* inode for tracking group quota */
1403 __le32 s_lpf_ino; /* Location of the lost+found inode */
1404 __le32 s_prj_quota_inum; /* inode for tracking project quota */
1438 unsigned long s_itb_per_group; /* Number of inode table blocks per group */
1510 struct inode *s_buddy_cache;
1574 /* Lazy inode table initialization info */
1611 * Barrier between writepages ops and changing any inode's JOURNAL_DATA
1677 static inline struct ext4_inode_info *EXT4_I(struct inode *inode)
1679 return container_of(inode, struct ext4_inode_info, vfs_inode);
1799 EXT4_STATE_NEW, /* inode is newly created */
1800 EXT4_STATE_XATTR, /* has in-inode xattrs */
1805 EXT4_STATE_MAY_INLINE_DATA, /* may have in-inode data */
1813 static inline int ext4_test_inode_##name(struct inode *inode, int bit) \
1815 return test_bit(bit + (offset), &EXT4_I(inode)->i_##field); \
1817 static inline void ext4_set_inode_##name(struct inode *inode, int bit) \
1819 set_bit(bit + (offset), &EXT4_I(inode)->i_##field); \
1821 static inline void ext4_clear_inode_##name(struct inode *inode, int bit) \
1823 clear_bit(bit + (offset), &EXT4_I(inode)->i_##field); \
1828 static inline int ext4_test_inode_flag(struct inode *inode, int bit);
1829 static inline void ext4_set_inode_flag(struct inode *inode, int bit);
1830 static inline void ext4_clear_inode_flag(struct inode *inode, int bit);
1835 static inline int ext4_test_inode_state(struct inode *inode, int bit);
1836 static inline void ext4_set_inode_state(struct inode *inode, int bit);
1837 static inline void ext4_clear_inode_state(struct inode *inode, int bit);
1860 static inline bool ext4_verity_in_progress(struct inode *inode)
1863 ext4_test_inode_state(inode, EXT4_STATE_VERITY_IN_PROGRESS);
1866 #define NEXT_ORPHAN(inode) EXT4_I(inode)->i_dtime
1881 #define EXT4_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
1942 #define EXT4_FEATURE_INCOMPAT_EA_INODE 0x0400 /* EA in inode */
1946 #define EXT4_FEATURE_INCOMPAT_INLINE_DATA 0x8000 /* data in inode */
2188 __le32 inode; /* Inode number */
2201 __le32 inode; /* Inode number */
2366 * Describe an inode's exact location on disk and in memory
2380 static inline bool ext4_is_quota_file(struct inode *inode)
2382 return IS_NOQUOTA(inode) &&
2383 !(EXT4_I(inode)->i_flags & EXT4_EA_INODE_FL);
2425 * Timeout and state flag for lazy initialization inode thread.
2433 * Lazy inode table initialization info
2565 extern ext4_fsblk_t ext4_new_meta_blocks(handle_t *handle, struct inode *inode,
2592 ext4_fsblk_t ext4_inode_to_goal_block(struct inode *);
2595 extern void ext4_fname_setup_ci_filename(struct inode *dir,
2613 static inline int ext4_fname_setup_filename(struct inode *dir,
2633 static inline int ext4_fname_prepare_lookup(struct inode *dir,
2669 static inline int ext4_fname_setup_filename(struct inode *dir,
2685 static inline int ext4_fname_prepare_lookup(struct inode *dir,
2702 extern int __ext4_check_dir_entry(const char *, unsigned int, struct inode *,
2715 extern int ext4_find_dest_de(struct inode *dir, struct inode *inode,
2720 void ext4_insert_dentry(struct inode *inode,
2724 static inline void ext4_update_dx_flag(struct inode *inode)
2726 if (!ext4_has_feature_dir_index(inode->i_sb) &&
2727 ext4_test_inode_flag(inode, EXT4_INODE_INDEX)) {
2729 WARN_ON_ONCE(ext4_has_feature_metadata_csum(inode->i_sb));
2730 ext4_clear_inode_flag(inode, EXT4_INODE_INDEX);
2744 extern int ext4_check_all_de(struct inode *dir, struct buffer_head *bh,
2751 extern int ext4fs_dirhash(const struct inode *dir, const char *name, int len,
2756 extern struct inode *__ext4_new_inode(handle_t *, struct inode *, umode_t,
2771 extern void ext4_free_inode(handle_t *, struct inode *);
2772 extern struct inode * ext4_orphan_get(struct super_block *, unsigned long);
2784 void ext4_fc_init_inode(struct inode *inode);
2785 void ext4_fc_track_range(handle_t *handle, struct inode *inode, ext4_lblk_t start,
2787 void __ext4_fc_track_unlink(handle_t *handle, struct inode *inode,
2789 void __ext4_fc_track_link(handle_t *handle, struct inode *inode,
2793 void __ext4_fc_track_create(handle_t *handle, struct inode *inode,
2796 void ext4_fc_track_inode(handle_t *handle, struct inode *inode);
2800 void ext4_fc_start_update(struct inode *inode);
2801 void ext4_fc_stop_update(struct inode *inode);
2802 void ext4_fc_del(struct inode *inode);
2822 extern void ext4_discard_preallocations(struct inode *, unsigned int);
2831 extern void ext4_free_blocks(handle_t *handle, struct inode *inode,
2845 /* inode.c */
2846 void ext4_inode_csum_set(struct inode *inode, struct ext4_inode *raw,
2848 int ext4_inode_is_fast_symlink(struct inode *inode);
2849 struct buffer_head *ext4_getblk(handle_t *, struct inode *, ext4_lblk_t, int);
2850 struct buffer_head *ext4_bread(handle_t *, struct inode *, ext4_lblk_t, int);
2851 int ext4_bread_batch(struct inode *inode, ext4_lblk_t block, int bh_count,
2853 int ext4_get_block_unwritten(struct inode *inode, sector_t iblock,
2855 int ext4_get_block(struct inode *inode, sector_t iblock,
2857 int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
2873 EXT4_IGET_SPECIAL = 0x0001, /* OK to iget a system inode */
2875 EXT4_IGET_BAD = 0x0004, /* Allow to iget a bad inode */
2879 extern struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,
2886 extern int ext4_write_inode(struct inode *, struct writeback_control *);
2889 extern void ext4_evict_inode(struct inode *);
2890 extern void ext4_clear_inode(struct inode *);
2892 extern int ext4_sync_inode(handle_t *, struct inode *);
2893 extern void ext4_dirty_inode(struct inode *, int);
2894 extern int ext4_change_inode_journal_flag(struct inode *, int);
2895 extern int ext4_get_inode_loc(struct inode *, struct ext4_iloc *);
2898 extern int ext4_inode_attach_jinode(struct inode *inode);
2899 extern int ext4_can_truncate(struct inode *inode);
2900 extern int ext4_truncate(struct inode *);
2901 extern int ext4_break_layouts(struct inode *);
2903 extern void ext4_set_inode_flags(struct inode *, bool init);
2904 extern int ext4_alloc_da_blocks(struct inode *inode);
2905 extern void ext4_set_aops(struct inode *inode);
2906 extern int ext4_writepage_trans_blocks(struct inode *);
2907 extern int ext4_chunk_trans_blocks(struct inode *, int nrblocks);
2908 extern int ext4_zero_partial_blocks(handle_t *handle, struct inode *inode,
2912 extern qsize_t *ext4_get_reserved_space(struct inode *inode);
2913 extern int ext4_get_projid(struct inode *inode, kprojid_t *projid);
2914 extern void ext4_da_release_space(struct inode *inode, int to_free);
2915 extern void ext4_da_update_reserve_space(struct inode *inode,
2917 extern int ext4_issue_zeroout(struct inode *inode, ext4_lblk_t lblk,
2921 extern int ext4_ind_map_blocks(handle_t *handle, struct inode *inode,
2923 extern int ext4_ind_trans_blocks(struct inode *inode, int nrblocks);
2924 extern void ext4_ind_truncate(handle_t *, struct inode *inode);
2925 extern int ext4_ind_remove_space(handle_t *handle, struct inode *inode,
2931 extern void ext4_reset_inode_seed(struct inode *inode);
2934 extern int ext4_ext_migrate(struct inode *);
2935 extern int ext4_ind_migrate(struct inode *inode);
2938 extern int ext4_init_new_dir(handle_t *handle, struct inode *dir,
2939 struct inode *inode);
2940 extern int ext4_dirblock_csum_verify(struct inode *inode,
2942 extern int ext4_orphan_add(handle_t *, struct inode *);
2943 extern int ext4_orphan_del(handle_t *, struct inode *);
2949 struct inode *dir,
2953 extern int ext4_generic_delete_entry(struct inode *dir,
2959 extern bool ext4_empty_dir(struct inode *inode);
2998 void __ext4_error_inode(struct inode *, const char *, unsigned int,
3009 void __ext4_warning_inode(const struct inode *inode, const char *function,
3021 #define EXT4_ERROR_INODE(inode, fmt, a...) \
3022 ext4_error_inode((inode), __func__, __LINE__, 0, (fmt), ## a)
3024 #define EXT4_ERROR_INODE_ERR(inode, err, fmt, a...) \
3025 __ext4_error_inode((inode), __func__, __LINE__, 0, (err), (fmt), ## a)
3027 #define ext4_error_inode_block(inode, block, err, fmt, a...) \
3028 __ext4_error_inode((inode), __func__, __LINE__, (block), (err), \
3039 #define ext4_error_inode(inode, func, line, block, fmt, ...) \
3040 __ext4_error_inode(inode, func, line, block, 0, fmt, ##__VA_ARGS__)
3041 #define ext4_error_inode_err(inode, func, line, block, err, fmt, ...) \
3042 __ext4_error_inode((inode), (func), (line), (block), \
3054 #define ext4_warning_inode(inode, fmt, ...) \
3055 __ext4_warning_inode(inode, __func__, __LINE__, fmt, ##__VA_ARGS__)
3066 #define ext4_error_inode(inode, func, line, block, fmt, ...) \
3069 __ext4_error_inode(inode, "", 0, block, 0, " "); \
3071 #define ext4_error_inode_err(inode, func, line, block, err, fmt, ...) \
3074 __ext4_error_inode(inode, "", 0, block, err, " "); \
3096 #define ext4_warning_inode(inode, fmt, ...) \
3099 __ext4_warning_inode(inode, "", 0, " "); \
3265 static inline void ext4_update_i_disksize(struct inode *inode, loff_t newsize)
3267 WARN_ON_ONCE(S_ISREG(inode->i_mode) &&
3268 !inode_is_locked(inode));
3269 down_write(&EXT4_I(inode)->i_data_sem);
3270 if (newsize > EXT4_I(inode)->i_disksize)
3271 WRITE_ONCE(EXT4_I(inode)->i_disksize, newsize);
3272 up_write(&EXT4_I(inode)->i_data_sem);
3276 static inline int ext4_update_inode_size(struct inode *inode, loff_t newsize)
3280 if (newsize > inode->i_size) {
3281 i_size_write(inode, newsize);
3284 if (newsize > EXT4_I(inode)->i_disksize) {
3285 ext4_update_i_disksize(inode, newsize);
3291 int ext4_update_disksize_before_punch(struct inode *inode, loff_t offset,
3388 #define ext4_check_indirect_blockref(inode, bh) \
3389 ext4_check_blockref(__func__, __LINE__, inode, \
3391 EXT4_ADDR_PER_BLOCK((inode)->i_sb))
3393 #define ext4_ind_check_inode(inode) \
3394 ext4_check_blockref(__func__, __LINE__, inode, \
3395 EXT4_I(inode)->i_data, \
3415 extern int ext4_get_max_inline_size(struct inode *inode);
3416 extern int ext4_find_inline_data_nolock(struct inode *inode);
3417 extern int ext4_init_inline_data(handle_t *handle, struct inode *inode,
3419 extern int ext4_destroy_inline_data(handle_t *handle, struct inode *inode);
3421 extern int ext4_readpage_inline(struct inode *inode, struct page *page);
3423 struct inode *inode,
3427 extern int ext4_write_inline_data_end(struct inode *inode,
3432 ext4_journalled_write_inline_data(struct inode *inode,
3436 struct inode *inode,
3443 struct inode *dir, struct inode *inode);
3445 struct inode *parent,
3446 struct inode *inode);
3451 struct inode *dir, ext4_lblk_t block,
3455 extern struct buffer_head *ext4_find_inline_entry(struct inode *dir,
3460 struct inode *dir,
3464 extern bool empty_inline_dir(struct inode *dir, int *has_inline_data);
3465 extern struct buffer_head *ext4_get_first_inline_block(struct inode *inode,
3468 extern int ext4_inline_data_fiemap(struct inode *inode,
3473 extern int ext4_inline_data_iomap(struct inode *inode, struct iomap *iomap);
3475 extern int ext4_inline_data_truncate(struct inode *inode, int *has_inline);
3477 extern int ext4_convert_inline_data(struct inode *inode);
3479 static inline int ext4_has_inline_data(struct inode *inode)
3481 return ext4_test_inode_flag(inode, EXT4_INODE_INLINE_DATA) &&
3482 EXT4_I(inode)->i_inline_off;
3489 extern struct ext4_dir_entry_2 *ext4_init_dot_dotdot(struct inode *inode,
3495 extern int ext4_handle_dirty_dirblock(handle_t *handle, struct inode *inode,
3497 extern int ext4_ci_compare(const struct inode *parent,
3500 extern int __ext4_unlink(struct inode *dir, const struct qstr *d_name,
3501 struct inode *inode, struct dentry *dentry);
3502 extern int __ext4_link(struct inode *dir, struct inode *inode,
3524 extern int ext4_mpage_readpages(struct inode *inode,
3545 extern int ext4_inode_block_valid(struct inode *inode,
3549 struct inode *, __le32 *, unsigned int);
3550 extern int ext4_sb_block_valid(struct super_block *sb, struct inode *inode,
3564 extern void ext4_ext_tree_init(handle_t *handle, struct inode *inode);
3565 extern int ext4_ext_index_trans_blocks(struct inode *inode, int extents);
3566 extern int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
3568 extern int ext4_ext_truncate(handle_t *, struct inode *);
3569 extern int ext4_ext_remove_space(struct inode *inode, ext4_lblk_t start,
3575 extern int ext4_convert_unwritten_extents(handle_t *handle, struct inode *inode,
3579 extern int ext4_map_blocks(handle_t *handle, struct inode *inode,
3581 extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode,
3584 extern int ext4_ext_insert_extent(handle_t *, struct inode *,
3587 extern struct ext4_ext_path *ext4_find_extent(struct inode *, ext4_lblk_t,
3591 extern int ext4_ext_check_inode(struct inode *inode);
3593 extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
3595 extern int ext4_get_es_cache(struct inode *inode,
3598 extern int ext4_ext_precache(struct inode *inode);
3599 extern int ext4_swap_extents(handle_t *handle, struct inode *inode1,
3600 struct inode *inode2, ext4_lblk_t lblk1,
3603 extern int ext4_clu_mapped(struct inode *inode, ext4_lblk_t lclu);
3604 extern int ext4_datasem_ensure_credits(handle_t *handle, struct inode *inode,
3607 extern void ext4_ext_replay_shrink_inode(struct inode *inode, ext4_lblk_t end);
3608 extern int ext4_ext_replay_set_iblocks(struct inode *inode);
3609 extern int ext4_ext_replay_update_ex(struct inode *inode, ext4_lblk_t start,
3611 extern int ext4_ext_clear_bb(struct inode *inode);
3615 extern void ext4_double_down_write_data_sem(struct inode *first,
3616 struct inode *second);
3617 extern void ext4_double_up_write_data_sem(struct inode *orig_inode,
3618 struct inode *donor_inode);
3626 extern ext4_io_end_t *ext4_init_io_end(struct inode *inode, gfp_t flags);
3652 * Add new method to test whether block and inode bitmaps are properly
3679 static inline void ext4_set_io_unwritten_flag(struct inode *inode,
3684 atomic_inc(&EXT4_I(inode)->i_unwritten);
3690 struct inode *inode = io_end->inode;
3695 if (atomic_dec_and_test(&EXT4_I(inode)->i_unwritten))
3696 wake_up_all(ext4_ioend_wq(inode));