typedef int ext4_grpblk_t;
/* data type for filesystem-wide blocks number */
-typedef sector_t ext4_fsblk_t;
-
-#if BITS_PER_LONG == 64
-#define E3FSBLK "%lu"
-#else
-#define E3FSBLK "%llu"
-#endif
+typedef unsigned long long ext4_fsblk_t;
struct ext4_reserve_window {
ext4_fsblk_t _rsv_start; /* First byte reserved */
struct ext4_block_alloc_info {
/* information about reservation window */
- struct ext4_reserve_window_node rsv_window_node;
+ struct ext4_reserve_window_node rsv_window_node;
/*
* was i_next_alloc_block in ext4_inode_info
* is the logical (file-relative) number of the
* most-recently-allocated block in this file.
* We use this for detecting linearly ascending allocation requests.
*/
- __u32 last_alloc_logical_block;
+ __u32 last_alloc_logical_block;
/*
* Was i_next_alloc_goal in ext4_inode_info
* is the *physical* companion to i_next_alloc_block.
- * it the the physical block number of the block which was most-recentl
+ * it the physical block number of the block which was most-recentl
* allocated to this file. This give us the goal (target) for the next
* allocation when we detect linearly ascending requests.
*/
- ext4_fsblk_t last_alloc_physical_block;
+ ext4_fsblk_t last_alloc_physical_block;
};
#define rsv_start rsv_window._rsv_start
* storage for cached extent
*/
struct ext4_ext_cache {
- __u32 ec_start;
- __u32 ec_block;
- __u32 ec_len; /* must be 32bit to return holes */
- __u32 ec_type;
+ ext4_fsblk_t ec_start;
+ __u32 ec_block;
+ __u32 ec_len; /* must be 32bit to return holes */
+ __u32 ec_type;
};
/*
unsigned long i_ext_generation;
struct ext4_ext_cache i_cached_extent;
+ /*
+ * File creation time. Its function is same as that of
+ * struct timespec i_{a,c,m}time in the generic inode.
+ */
+ struct timespec i_crtime;
};
#endif /* _LINUX_EXT4_FS_I */