diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-01 10:49:18 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-01 10:49:18 -0400 |
| commit | e984fd486fdbd65d1b4a637f0ef80086eee8fbe6 (patch) | |
| tree | b2d5027fc0ca5eabca5a47e1bbdcc90133f5cc1e /include | |
| parent | 184b812f7da6726d7ea4ca409c7a8762ff6c6df6 (diff) | |
| parent | 436bd75e47cf804dfe89f805106bb53ff577e99a (diff) | |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
Define/reserve new ext4 superblock fields
When ext4_ext_insert_extent() fails to insert new blocks
ext4: Extent overlap bugfix
Remove unnecessary exported symbols.
EXT4: Fix whitespace
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ext4_fs.h | 33 | ||||
| -rw-r--r-- | include/linux/ext4_fs_extents.h | 5 | ||||
| -rw-r--r-- | include/linux/ext4_fs_i.h | 6 |
3 files changed, 26 insertions, 18 deletions
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h index 54c576d414c3..de1f9f78625a 100644 --- a/include/linux/ext4_fs.h +++ b/include/linux/ext4_fs.h | |||
| @@ -32,9 +32,9 @@ | |||
| 32 | /* | 32 | /* |
| 33 | * Define EXT4_RESERVATION to reserve data blocks for expanding files | 33 | * Define EXT4_RESERVATION to reserve data blocks for expanding files |
| 34 | */ | 34 | */ |
| 35 | #define EXT4_DEFAULT_RESERVE_BLOCKS 8 | 35 | #define EXT4_DEFAULT_RESERVE_BLOCKS 8 |
| 36 | /*max window size: 1024(direct blocks) + 3([t,d]indirect blocks) */ | 36 | /*max window size: 1024(direct blocks) + 3([t,d]indirect blocks) */ |
| 37 | #define EXT4_MAX_RESERVE_BLOCKS 1027 | 37 | #define EXT4_MAX_RESERVE_BLOCKS 1027 |
| 38 | #define EXT4_RESERVE_WINDOW_NOT_ALLOCATED 0 | 38 | #define EXT4_RESERVE_WINDOW_NOT_ALLOCATED 0 |
| 39 | /* | 39 | /* |
| 40 | * Always enable hashed directories | 40 | * Always enable hashed directories |
| @@ -204,12 +204,12 @@ struct ext4_group_desc | |||
| 204 | 204 | ||
| 205 | /* Used to pass group descriptor data when online resize is done */ | 205 | /* Used to pass group descriptor data when online resize is done */ |
| 206 | struct ext4_new_group_input { | 206 | struct ext4_new_group_input { |
| 207 | __u32 group; /* Group number for this data */ | 207 | __u32 group; /* Group number for this data */ |
| 208 | __u64 block_bitmap; /* Absolute block number of block bitmap */ | 208 | __u64 block_bitmap; /* Absolute block number of block bitmap */ |
| 209 | __u64 inode_bitmap; /* Absolute block number of inode bitmap */ | 209 | __u64 inode_bitmap; /* Absolute block number of inode bitmap */ |
| 210 | __u64 inode_table; /* Absolute block number of inode table start */ | 210 | __u64 inode_table; /* Absolute block number of inode table start */ |
| 211 | __u32 blocks_count; /* Total number of blocks in this group */ | 211 | __u32 blocks_count; /* Total number of blocks in this group */ |
| 212 | __u16 reserved_blocks; /* Number of reserved blocks in this group */ | 212 | __u16 reserved_blocks; /* Number of reserved blocks in this group */ |
| 213 | __u16 unused; | 213 | __u16 unused; |
| 214 | }; | 214 | }; |
| 215 | 215 | ||
| @@ -310,7 +310,7 @@ struct ext4_inode { | |||
| 310 | __u8 l_i_frag; /* Fragment number */ | 310 | __u8 l_i_frag; /* Fragment number */ |
| 311 | __u8 l_i_fsize; /* Fragment size */ | 311 | __u8 l_i_fsize; /* Fragment size */ |
| 312 | __le16 l_i_file_acl_high; | 312 | __le16 l_i_file_acl_high; |
| 313 | __le16 l_i_uid_high; /* these 2 fields */ | 313 | __le16 l_i_uid_high; /* these 2 fields */ |
| 314 | __le16 l_i_gid_high; /* were reserved2[0] */ | 314 | __le16 l_i_gid_high; /* were reserved2[0] */ |
| 315 | __u32 l_i_reserved2; | 315 | __u32 l_i_reserved2; |
| 316 | } linux2; | 316 | } linux2; |
| @@ -513,7 +513,14 @@ struct ext4_super_block { | |||
| 513 | /*150*/ __le32 s_blocks_count_hi; /* Blocks count */ | 513 | /*150*/ __le32 s_blocks_count_hi; /* Blocks count */ |
| 514 | __le32 s_r_blocks_count_hi; /* Reserved blocks count */ | 514 | __le32 s_r_blocks_count_hi; /* Reserved blocks count */ |
| 515 | __le32 s_free_blocks_count_hi; /* Free blocks count */ | 515 | __le32 s_free_blocks_count_hi; /* Free blocks count */ |
| 516 | __u32 s_reserved[169]; /* Padding to the end of the block */ | 516 | __u16 s_min_extra_isize; /* All inodes have at least # bytes */ |
| 517 | __u16 s_want_extra_isize; /* New inodes should reserve # bytes */ | ||
| 518 | __u32 s_flags; /* Miscellaneous flags */ | ||
| 519 | __u16 s_raid_stride; /* RAID stride */ | ||
| 520 | __u16 s_mmp_interval; /* # seconds to wait in MMP checking */ | ||
| 521 | __u64 s_mmp_block; /* Block for multi-mount protection */ | ||
| 522 | __u32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/ | ||
| 523 | __u32 s_reserved[163]; /* Padding to the end of the block */ | ||
| 517 | }; | 524 | }; |
| 518 | 525 | ||
| 519 | #ifdef __KERNEL__ | 526 | #ifdef __KERNEL__ |
| @@ -780,9 +787,9 @@ void ext4_get_group_no_and_offset(struct super_block *sb, ext4_fsblk_t blocknr, | |||
| 780 | * Ok, these declarations are also in <linux/kernel.h> but none of the | 787 | * Ok, these declarations are also in <linux/kernel.h> but none of the |
| 781 | * ext4 source programs needs to include it so they are duplicated here. | 788 | * ext4 source programs needs to include it so they are duplicated here. |
| 782 | */ | 789 | */ |
| 783 | # define NORET_TYPE /**/ | 790 | # define NORET_TYPE /**/ |
| 784 | # define ATTRIB_NORET __attribute__((noreturn)) | 791 | # define ATTRIB_NORET __attribute__((noreturn)) |
| 785 | # define NORET_AND noreturn, | 792 | # define NORET_AND noreturn, |
| 786 | 793 | ||
| 787 | /* balloc.c */ | 794 | /* balloc.c */ |
| 788 | extern unsigned int ext4_block_group(struct super_block *sb, | 795 | extern unsigned int ext4_block_group(struct super_block *sb, |
diff --git a/include/linux/ext4_fs_extents.h b/include/linux/ext4_fs_extents.h index 7eb1d73fc5d1..acfe59740b03 100644 --- a/include/linux/ext4_fs_extents.h +++ b/include/linux/ext4_fs_extents.h | |||
| @@ -151,8 +151,8 @@ typedef int (*ext_prepare_callback)(struct inode *, struct ext4_ext_path *, | |||
| 151 | ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \ | 151 | ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \ |
| 152 | sizeof(struct ext4_extent_header))) | 152 | sizeof(struct ext4_extent_header))) |
| 153 | #define EXT_HAS_FREE_INDEX(__path__) \ | 153 | #define EXT_HAS_FREE_INDEX(__path__) \ |
| 154 | (le16_to_cpu((__path__)->p_hdr->eh_entries) \ | 154 | (le16_to_cpu((__path__)->p_hdr->eh_entries) \ |
| 155 | < le16_to_cpu((__path__)->p_hdr->eh_max)) | 155 | < le16_to_cpu((__path__)->p_hdr->eh_max)) |
| 156 | #define EXT_LAST_EXTENT(__hdr__) \ | 156 | #define EXT_LAST_EXTENT(__hdr__) \ |
| 157 | (EXT_FIRST_EXTENT((__hdr__)) + le16_to_cpu((__hdr__)->eh_entries) - 1) | 157 | (EXT_FIRST_EXTENT((__hdr__)) + le16_to_cpu((__hdr__)->eh_entries) - 1) |
| 158 | #define EXT_LAST_INDEX(__hdr__) \ | 158 | #define EXT_LAST_INDEX(__hdr__) \ |
| @@ -190,6 +190,7 @@ ext4_ext_invalidate_cache(struct inode *inode) | |||
| 190 | 190 | ||
| 191 | extern int ext4_extent_tree_init(handle_t *, struct inode *); | 191 | extern int ext4_extent_tree_init(handle_t *, struct inode *); |
| 192 | extern int ext4_ext_calc_credits_for_insert(struct inode *, struct ext4_ext_path *); | 192 | extern int ext4_ext_calc_credits_for_insert(struct inode *, struct ext4_ext_path *); |
| 193 | extern unsigned int ext4_ext_check_overlap(struct inode *, struct ext4_extent *, struct ext4_ext_path *); | ||
| 193 | extern int ext4_ext_insert_extent(handle_t *, struct inode *, struct ext4_ext_path *, struct ext4_extent *); | 194 | extern int ext4_ext_insert_extent(handle_t *, struct inode *, struct ext4_ext_path *, struct ext4_extent *); |
| 194 | extern int ext4_ext_walk_space(struct inode *, unsigned long, unsigned long, ext_prepare_callback, void *); | 195 | extern int ext4_ext_walk_space(struct inode *, unsigned long, unsigned long, ext_prepare_callback, void *); |
| 195 | extern struct ext4_ext_path * ext4_ext_find_extent(struct inode *, int, struct ext4_ext_path *); | 196 | extern struct ext4_ext_path * ext4_ext_find_extent(struct inode *, int, struct ext4_ext_path *); |
diff --git a/include/linux/ext4_fs_i.h b/include/linux/ext4_fs_i.h index d5b177e5b395..9de494406995 100644 --- a/include/linux/ext4_fs_i.h +++ b/include/linux/ext4_fs_i.h | |||
| @@ -41,14 +41,14 @@ struct ext4_reserve_window_node { | |||
| 41 | 41 | ||
| 42 | struct ext4_block_alloc_info { | 42 | struct ext4_block_alloc_info { |
| 43 | /* information about reservation window */ | 43 | /* information about reservation window */ |
| 44 | struct ext4_reserve_window_node rsv_window_node; | 44 | struct ext4_reserve_window_node rsv_window_node; |
| 45 | /* | 45 | /* |
| 46 | * was i_next_alloc_block in ext4_inode_info | 46 | * was i_next_alloc_block in ext4_inode_info |
| 47 | * is the logical (file-relative) number of the | 47 | * is the logical (file-relative) number of the |
| 48 | * most-recently-allocated block in this file. | 48 | * most-recently-allocated block in this file. |
| 49 | * We use this for detecting linearly ascending allocation requests. | 49 | * We use this for detecting linearly ascending allocation requests. |
| 50 | */ | 50 | */ |
| 51 | __u32 last_alloc_logical_block; | 51 | __u32 last_alloc_logical_block; |
| 52 | /* | 52 | /* |
| 53 | * Was i_next_alloc_goal in ext4_inode_info | 53 | * Was i_next_alloc_goal in ext4_inode_info |
| 54 | * is the *physical* companion to i_next_alloc_block. | 54 | * is the *physical* companion to i_next_alloc_block. |
| @@ -56,7 +56,7 @@ struct ext4_block_alloc_info { | |||
| 56 | * allocated to this file. This give us the goal (target) for the next | 56 | * allocated to this file. This give us the goal (target) for the next |
| 57 | * allocation when we detect linearly ascending requests. | 57 | * allocation when we detect linearly ascending requests. |
| 58 | */ | 58 | */ |
| 59 | ext4_fsblk_t last_alloc_physical_block; | 59 | ext4_fsblk_t last_alloc_physical_block; |
| 60 | }; | 60 | }; |
| 61 | 61 | ||
| 62 | #define rsv_start rsv_window._rsv_start | 62 | #define rsv_start rsv_window._rsv_start |
