X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fext3_fs_i.h;h=5e781aaff404440f854508f8d41284b1ee07d942;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=7451cdcfb9da592bf39db7104bc4e00bf38259b2;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/linux/ext3_fs_i.h b/include/linux/ext3_fs_i.h index 7451cdcfb..5e781aaff 100644 --- a/include/linux/ext3_fs_i.h +++ b/include/linux/ext3_fs_i.h @@ -17,12 +17,30 @@ #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 { - __u32 i_data[15]; + __le32 i_data[15]; /* unconverted */ __u32 i_flags; #ifdef EXT3_FRAGMENTS __u32 i_faddr; @@ -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