diff options
author | 2018-05-08 18:11:38 +0800 | |
---|---|---|
committer | 2018-05-28 18:07:32 +0200 | |
commit | 0f96f517dcaa58346c32be094aecd610b7d3c008 (patch) | |
tree | b36856eb17e341312279dd093edc79eb3c5425ef /tools/perf/scripts/python/export-to-postgresql.py | |
parent | btrfs: incremental send, move allocation until it's needed in orphan_dir_info (diff) | |
download | wireguard-linux-0f96f517dcaa58346c32be094aecd610b7d3c008.tar.xz wireguard-linux-0f96f517dcaa58346c32be094aecd610b7d3c008.zip |
btrfs: incremental send, improve rmdir performance for large directory
Currently when checking if a directory can be deleted, we always check
if all its children have been processed.
Example: A directory with 2,000,000 files was deleted
original: 1994m57.071s
patch: 1m38.554s
[FIX]
Instead of checking all children on all calls to can_rmdir(), we keep
track of the directory index offset of the child last checked in the
last call to can_rmdir(), and then use it as the starting point for
future calls to can_rmdir().
Signed-off-by: Robbie Ko <robbieko@synology.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
[ update changelog ]
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions