diff options
author | Jin Qian <jinqian@google.com> | 2018-01-22 10:47:41 -0800 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2018-06-21 09:43:09 -0400 |
commit | 611d341377607d69b053436fec6de016fe8258fd (patch) | |
tree | 0bd9b72e56a1d1ec36c2d42922a2af0cc73873a1 /contrib | |
parent | 555a0fce11966a35a5289d7b57afec343d3eaa7b (diff) |
AOSP: libext2fs: add EXT2_FLAG_SHARE_DUP to de-duplicate data blocks
When assigning physical address for new data block, search sha
of existing blocks for match. If there's a match, reuse address
of the matched block.
Also set EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS in de-duped image.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Google-Bug-Id: 64109868
Change-Id: I8d2d22e9c301264413c1454c84d7bf6bb32ac5c0
From AOSP commit: 3d7abcc7843d6dfdfdafabf43f5e072cb7aaffbd
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/android/e2fsdroid.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/contrib/android/e2fsdroid.c b/contrib/android/e2fsdroid.c index c73b0be5..2fe922d8 100644 --- a/contrib/android/e2fsdroid.c +++ b/contrib/android/e2fsdroid.c @@ -32,7 +32,7 @@ static void usage(int ret) { fprintf(stderr, "%s [-B block_list] [-D basefs_out] [-T timestamp]\n" "\t[-C fs_config] [-S file_contexts] [-p product_out]\n" - "\t[-a mountpoint] [-d basefs_in] [-f src_dir] [-e] image\n", + "\t[-a mountpoint] [-d basefs_in] [-f src_dir] [-e] [-s] image\n", prog_name); exit(ret); } @@ -73,7 +73,7 @@ int main(int argc, char *argv[]) add_error_table(&et_ext2_error_table); - while ((c = getopt (argc, argv, "T:C:S:p:a:D:d:B:f:e")) != EOF) { + while ((c = getopt (argc, argv, "T:C:S:p:a:D:d:B:f:es")) != EOF) { switch (c) { case 'T': fixed_time = strtoul(optarg, &p, 0); @@ -119,6 +119,9 @@ int main(int argc, char *argv[]) case 'e': android_sparse_file = 0; break; + case 's': + flags |= EXT2_FLAG_SHARE_DUP; + break; default: usage(EXIT_FAILURE); } |