2011-11-14 06:37:40

by Kazuya Mio

[permalink] [raw]
Subject: [PATCH v3 00/11] e4defrag: fragmentation score rework and cleanups

Hi,

This patch set adds the new function e2p_get_fragscore() to libe2p, that
calculates the fragmentation score. Fragmentation score shows how badly
fragmented the file might be. e4defrag uses it to determine smarter whether to
call EXT4_IOC_MOVE_EXT ioctl.

In addition, the 6th to the last is bugfix or cleanup patch.

v2 -> v3

- Don't treat integer variables as boolean in some conditions for good
readability
- Output the progress of the defrag like mke2fs to reduce log file size
- Revert to checking st_blocks to skip defrag safety if file has no blocks

Thanks for the above helpful comments, Dilger.

v1 -> v2
- Fix the method of calculating fragmentation score to show the number of
extents per specified blocks
- Remove the check of filesystem type to calculate the fragmentation score
for the file in non-ext4 filesystem
- Drop the patch for filefrag
- Fix free blocks check to use reserved blocks by users specified by
resuid/resgid mount option
- Add -F option to defrag a file if the fragment can get better even if
the fragmentation score of donor file is bigger than 1

This patch set is for e2fsprogs git tree. (commit:6b967cd6f1)

Kazuya Mio (11):
libe2p: Add new function e2p_get_fragscore()
e4defrag: Remove -c option which checks the file fragmentation
e4defrag: Remove old fragmentation score calculation code
e4defrag: Use e2p_get_fragscore() for decision of whether to defrag
e4defrag: Add -F option for force defrag
e4defrag: Allow user who has read+write permission to defrag
e4defrag: Allow user who can use reserved blocks to defrag
e4defrag: Use libext2fs definitions
e4defrag: Fix error messages more clearly
e4defrag: Fix the method of progress output
e4defrag: Remove unnecessary code

lib/e2p/Makefile.in | 6
lib/e2p/e2p.h | 3
lib/e2p/fragment_score.c | 133 ++++++
misc/Makefile.in | 4
misc/e4defrag.8.in | 33 -
misc/e4defrag.c | 950 +++++++----------------------------------------
6 files changed, 290 insertions(+), 839 deletions(-)

Regards,
Kazuya Mio