E2fsprogs features and patches

From Ext4
(Difference between revisions)
Jump to: navigation, search
(Update and reorganization)
(Remove blatently out of date stuff)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<!-- Welcome Block -->
 
<!-- Welcome Block -->
 +
 +
{{WARN| This page is somewhat out of date.}}
 +
 
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;">
 
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;">
 
'''Getting the e2fsprogs Git tree:'''
 
'''Getting the e2fsprogs Git tree:'''
Line 6: Line 9:
 
* git clone git://repo.or.cz/e2fsprogs.git
 
* git clone git://repo.or.cz/e2fsprogs.git
 
</div>
 
</div>
 
+
 
+
 
= Works in progress =
 
= Works in progress =
  
 
== Flexible block group support ==
 
== Flexible block group support ==
* Basic support for groups with out meta-data available in the next branch.
 
* Meta-data grouping support patches available (as of Apr08 they have been dropped from the pu branch due to conflicts introduce in the uninit_fixup branch)
 
* Patch needs to be broken up to smaller logical patches.
 
* Does resize2fs does the right thing with the new flexible block group allocation support?
 
 
* Does the kernel's on-line resizing do the right thing with the new flexible block group allocation support
 
* Does the kernel's on-line resizing do the right thing with the new flexible block group allocation support
 
* Test combinations of the flexible block group with meta_bg for:
 
* Test combinations of the flexible block group with meta_bg for:
** e2fsck
 
** resize2fs
 
 
** kernel-resizing
 
** kernel-resizing
 
== Undo I/O manager ==
 
 
* Patches submitted to the mailing list by Aneesh Kumar
 
* In the 'pu' branch; needs work
 
* Only use the undo manager with mke2fs if uninit blockgroups and lazy inode table init is enabled '''DONE'''
 
* Don't make the undo manager bomb out with mysterious errors if the directory does not exist, or if a filesystem has previously been created and there is an undo file there.  '''DONE'''
 
* If tdb_data_size is set to 32768, the tune2fs test fails; this seems to indicate that there may be a bug either in undoe2fs or in the undo_io manager.
 
* Maybe we should rename undoe2fs to e2undo?  "Undoe2fs" just looks funny because the "oe" runs together like a wierd non-english [[http://en.wikipedia.org/wiki/Diphthong Dipthong ]]
 
 
== 64-bit block support ==
 
 
* Patches submitted to the mailing list by Valerie Clement, which unfortunately broke the shared library ABI.
 
* Ted Ts'o suggests a different approach:
 
** http://thread.gmane.org/gmane.comp.file-systems.ext4/2845
 
** http://thread.gmane.org/gmane.comp.file-systems.ext4/2125
 
** Partial support is gradually getting added into the e2fsprogs mainline.
 
  
 
== i_version support: ==
 
== i_version support: ==
  
 
* Status of kernel patches?
 
* Status of kernel patches?
* No work needed for e2fsprogs except display support in debugfs
+
* No work needed for e2fsprogs except display support in debugfs '''DONE'''
 
+
==  Extents support ==
+
 
+
* Basic support in git tree
+
* Eric sandeen working on ext2fs_extent_set_bmap() functionality, needed to finish e2fsck pass1b and debugfs file write support.
+
 
+
== Nano second support ==
+
 
+
* Check out kernel support; does it work correctly?
+
* No work needed for e2fsprogs except display support in debugfs
+
  
 
== Extra isize support ==
 
== Extra isize support ==
  
 
* If the inode's extra_isize is less than the superblock's min_extra_isize, it needs to be fixed in e2fsck pass1.
 
* If the inode's extra_isize is less than the superblock's min_extra_isize, it needs to be fixed in e2fsck pass1.
 +
* Patches to do this are in the CFS/Lustre patch series.
  
== Items to fix in maint branch ==
+
== Uninit_bg support ==
 +
 
 +
* Resize2fs doens't work with the uninit_bg feature
 +
 
 +
== Add ext2prepare functionality to resize2fs ==
  
* The combination of meta_bg and resize_inode creates a corrupt filesystem (even in the 1.40.x's maint branch)
+
* The ext2resize package has an ext2prepare tool to allow an existing filesystem to be modified offline to support later online resizing as storage is added.  The main operation of ext2prepare is to add reserved group descriptor blocks to the resize inode, and possibly shift the inode table forward in order to allow this. The resize2fs tool already has the ability to move the inode table and add group descriptor blocks, so it ''just'' needs to be told to do this in a '''prepare''' mode that does not extend the size of the filesystem.
  
 
= Done =
 
= Done =
 +
 +
== 64-bit block support ==
  
 
== Greater than 32000 subdir support ==
 
== Greater than 32000 subdir support ==
  
 
== Huge file support==
 
== Huge file support==
 +
 +
==  Extents support ==
 +
 +
== Nano second support ==
  
 
== Uninitialized block groups ==
 
== Uninitialized block groups ==
Line 75: Line 55:
 
* Remove lazy_bg feature from being set in mke2fs.  Feature has been declare a dangerous hack by its creator, remove it to avoid people building on top of it.  '''DONE'''
 
* Remove lazy_bg feature from being set in mke2fs.  Feature has been declare a dangerous hack by its creator, remove it to avoid people building on top of it.  '''DONE'''
 
* Disentangle lazy_bg and meta_bg features '''DONE'''
 
* Disentangle lazy_bg and meta_bg features '''DONE'''
 +
 +
== Undo I/O manager ==
 +
 +
* Patches submitted to the mailing list by Aneesh Kumar
 +
* Only use the undo manager with mke2fs if uninit blockgroups and lazy inode table init is enabled '''DONE'''
 +
* Don't make the undo manager bomb out with mysterious errors if the directory does not exist, or if a filesystem has previously been created and there is an undo file there.  '''DONE'''
 +
* If tdb_data_size is set to 32768, the tune2fs test fails; this seems to indicate that there may be a bug either in undoe2fs or in the undo_io manager. '''DONE'''
 +
* Maybe we should rename undoe2fs to e2undo?  "Undoe2fs" just looks funny because the "oe" runs together like a wierd non-english [[http://en.wikipedia.org/wiki/Diphthong Dipthong ]] '''DONE'''
 +
 +
== Items to fix in maint branch ==
 +
 +
* The combination of meta_bg and resize_inode creates a corrupt filesystem (even in the 1.40.x's maint branch) '''DONE'''

Latest revision as of 19:34, 22 February 2011


ATTENTION!
This page is somewhat out of date.

Getting the e2fsprogs Git tree:

or

Contents

[edit] Works in progress

[edit] Flexible block group support

  • Does the kernel's on-line resizing do the right thing with the new flexible block group allocation support
  • Test combinations of the flexible block group with meta_bg for:
    • kernel-resizing

[edit] i_version support:

  • Status of kernel patches?
  • No work needed for e2fsprogs except display support in debugfs DONE

[edit] Extra isize support

  • If the inode's extra_isize is less than the superblock's min_extra_isize, it needs to be fixed in e2fsck pass1.
  • Patches to do this are in the CFS/Lustre patch series.

[edit] Uninit_bg support

  • Resize2fs doens't work with the uninit_bg feature

[edit] Add ext2prepare functionality to resize2fs

  • The ext2resize package has an ext2prepare tool to allow an existing filesystem to be modified offline to support later online resizing as storage is added. The main operation of ext2prepare is to add reserved group descriptor blocks to the resize inode, and possibly shift the inode table forward in order to allow this. The resize2fs tool already has the ability to move the inode table and add group descriptor blocks, so it just needs to be told to do this in a prepare mode that does not extend the size of the filesystem.

[edit] Done

[edit] 64-bit block support

[edit] Greater than 32000 subdir support

[edit] Huge file support

[edit] Extents support

[edit] Nano second support

[edit] Uninitialized block groups

  • Basic support (with bugs) integrated into e2fsprogs mainline
  • Rename uninit_groups to uninit_bg to be consistent with other defined features. Retain the old name for historical purpose. DONE
  • The return value of ext2fs_super_and_bgd_loc() is not to be trusted. Document this in the source code. DONE
  • Make sure ext2fs_super_and_bgd_loc() does not get used anywhere where the return value is expected to be accurate (aside from mke2fs). DONE
  • Remove lazy_bg feature from being set in mke2fs. Feature has been declare a dangerous hack by its creator, remove it to avoid people building on top of it. DONE
  • Disentangle lazy_bg and meta_bg features DONE

[edit] Undo I/O manager

  • Patches submitted to the mailing list by Aneesh Kumar
  • Only use the undo manager with mke2fs if uninit blockgroups and lazy inode table init is enabled DONE
  • Don't make the undo manager bomb out with mysterious errors if the directory does not exist, or if a filesystem has previously been created and there is an undo file there. DONE
  • If tdb_data_size is set to 32768, the tune2fs test fails; this seems to indicate that there may be a bug either in undoe2fs or in the undo_io manager. DONE
  • Maybe we should rename undoe2fs to e2undo? "Undoe2fs" just looks funny because the "oe" runs together like a wierd non-english [Dipthong ] DONE

[edit] Items to fix in maint branch

  • The combination of meta_bg and resize_inode creates a corrupt filesystem (even in the 1.40.x's maint branch) DONE
Personal tools