[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150421163300.GA14091@thunk.org>
Date: Tue, 21 Apr 2015 12:33:00 -0400
From: Theodore Ts'o <tytso@....edu>
To: "Darrick J. Wong" <darrick.wong@...cle.com>
Cc: linux-ext4@...r.kernel.org
Subject: Re: [PATCH 06/35] e2fsck: rebuild sparse extent trees/convert
non-extent ext3 files
On Wed, Apr 01, 2015 at 07:34:40PM -0700, Darrick J. Wong wrote:
> Teach e2fsck to (re)construct extent trees. This enables us to do
> either of the following: compress a highly sparse extent tree into
> fewer ETB blocks; or convert a ext3-style block mapped file to an
> extent file. The reconstruction is performed during pass 1E or 3A,
> as detailed below.
>
> For files that are already extent based, this algorithm will
> automatically run (pending user approval) if pass1 determines either
> (1) that a whole level of extent tree will fit into a higher level of
> the tree; (2) that the size of any level can be reduced by at least
> one ETB block; or (3) the extent tree is unnecessarily deep. It will
> not run at all if errors are found and the user declines to fix the
> errors.
>
> The option "-E bmap2extent" can be used to force e2fsck to convert all
> block map files to extent trees, and to rebuild all extent files'
> extent trees. After conversion, files larger than 12 blocks should be
> defragmented to eliminate empty holes where a block lives.
>
> The extent tree constructor is pretty dumb -- it creates a list of
> leaf extents (adjacent extents are collapsed), marks all indirect
> blocks / ETB blocks free, installs a new extent tree root in the
> inode, then loads the leaf extents into the tree.
>
> v2: Account for extent tree block slack that we create when splitting
> a block, so that we don't repeatedly annoy the user to rebuild a tree
> that we can't optimize further.
>
> v3: For any directory being rebuilt during pass 3A, defer any extent
> tree rebuilding until after the rehash. It's quite possible that the
> act of compressing an aged directory will cause it to shrink far
> enough to enable us to knock a level off the dir's extent tree.
>
> v4: Add a fixes_only option (and a E2FSCK_FIXES_ONLY environment
> variable) that disables optimization activities unless they are
> required to make the filesystem consistent.
>
> Signed-off-by: Darrick J. Wong <darrick.wong@...cle.com>
Thanks, applied.
- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists