X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fext3_fs_i.h;h=5e781aaff404440f854508f8d41284b1ee07d942;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=48baa3f4b04d6671046d7935f37519a4dfe98af6;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/linux/ext3_fs_i.h b/include/linux/ext3_fs_i.h index 48baa3f4b..5e781aaff 100644 --- a/include/linux/ext3_fs_i.h +++ b/include/linux/ext3_fs_i.h @@ -17,9 +17,27 @@ #define _LINUX_EXT3_FS_I #include +#include +#include + +struct ext3_reserve_window { + __u32 _rsv_start; /* First byte reserved */ + __u32 _rsv_end; /* Last byte reserved or 0 */ +}; + +struct ext3_reserve_window_node { + struct rb_node rsv_node; + atomic_t rsv_goal_size; + atomic_t rsv_alloc_hit; + seqlock_t rsv_seqlock; + struct ext3_reserve_window rsv_window; +}; + +#define rsv_start rsv_window._rsv_start +#define rsv_end rsv_window._rsv_end /* - * second extended file system inode data in memory + * third extended file system inode data in memory */ struct ext3_inode_info { __le32 i_data[15]; /* unconverted */ @@ -57,10 +75,9 @@ struct ext3_inode_info { * allocation when we detect linearly ascending requests. */ __u32 i_next_alloc_goal; -#ifdef EXT3_PREALLOCATE - __u32 i_prealloc_block; - __u32 i_prealloc_count; -#endif + /* block reservation window */ + struct ext3_reserve_window_node i_rsv_window; + __u32 i_dir_start_lookup; #ifdef CONFIG_EXT3_FS_XATTR /* @@ -96,6 +113,9 @@ struct ext3_inode_info { */ loff_t i_disksize; + /* on-disk additional length */ + __u16 i_extra_isize; + /* * truncate_sem is for serialising ext3_truncate() against * ext3_getblock(). In the 2.4 ext2 design, great chunks of inode's