E2fsprogs features and patches

From Ext4
(Difference between revisions)
Jump to: navigation, search
(Remove blatently out of date stuff)
 
(14 intermediate revisions by 3 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 =
  
'''Undo I/O manager:'''
+
== Flexible block group support ==
* Patches submitted to the mailing list by Aneesh Kumar
+
* Does the kernel's on-line resizing do the right thing with the new flexible block group allocation support
* To be merged after 1.40
+
* Test combinations of the flexible block group with meta_bg for:
http://thread.gmane.org/gmane.comp.file-systems.ext4/2826
+
** kernel-resizing
  
'''64bit blk Support:'''
+
== i_version support: ==
* Patches submitted to the mailing list by Valerie Clement
+
* Requires different binaries for doing 64bit support.
+
* Unified binaries will most likely require API/ABI changes.
+
* 64bit blk support requires 64bit binaries.  Breaks on PPC64 32bit user-space env.
+
* Ted T'so suggests a different approach:
+
** http://thread.gmane.org/gmane.comp.file-systems.ext4/2845
+
http://thread.gmane.org/gmane.comp.file-systems.ext4/2125
+
  
'''Uninitialized block groups:'''
+
* Status of kernel patches?
* Girish Shilamkar recently submitted new patch to the mailing list
+
* No work needed for e2fsprogs except display support in debugfs '''DONE'''
* Kernel patches not in mainline yet.  What's the hold up here?
+
  
'''i_version support:'''
+
== Extra isize support ==
* Kernel patches not in mainline yet.  Ongoing discussions.
+
* Patches submitted?
+
  
'''Extents 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 submitted?
+
* Patches to do this are in the CFS/Lustre patch series.
 +
 
 +
== Uninit_bg support ==
 +
 
 +
* Resize2fs doens't work with the uninit_bg feature
 +
 
 +
== 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.
 +
 
 +
= Done =
 +
 
 +
== 64-bit block support ==
 +
 
 +
== Greater than 32000 subdir support ==
 +
 
 +
== Huge file support==
 +
 
 +
==  Extents support ==
 +
 
 +
== Nano second support ==
 +
 
 +
== 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'''
 +
 
 +
== 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'''
  
'''Nano second support:'''
+
== Items to fix in maint branch ==
* Patches submitted?
+
  
'''Greater than 32000 subdir support:'''
+
* The combination of meta_bg and resize_inode creates a corrupt filesystem (even in the 1.40.x's maint branch) '''DONE'''
* Girish Shilamkar recently submitted new patch to the mailing list
+
* No archive link yet.
+

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