On 4/7/19 2:11 PM, Qu Wenruo wrote:
  static int copy_from_extent_tree(struct metadump_struct *metadump,
-                                struct btrfs_path *path)
+                                struct btrfs_path *path, bool dump_data)
  {
        struct btrfs_root *extent_root;
        struct extent_buffer *leaf;
@@ -948,9 +960,15 @@ static int copy_from_extent_tree(struct metadump_struct 
*metadump,
                        ei = btrfs_item_ptr(leaf, path->slots[0],
                                            struct btrfs_extent_item);
                        if (btrfs_extent_flags(leaf, ei) &
-                           BTRFS_EXTENT_FLAG_TREE_BLOCK) {
+                           BTRFS_EXTENT_FLAG_TREE_BLOCK ||
+                           btrfs_extent_flags(leaf, ei) &
+                           BTRFS_EXTENT_FLAG_DATA) {
+                               bool is_data;
+
+                               is_data = btrfs_extent_flags(leaf, ei) &
+                                         BTRFS_EXTENT_FLAG_DATA;
                                ret = add_extent(bytenr, num_bytes, metadump,
-                                                0);
+                                                is_data);


  Both with and without -d option copies the data.
  Should check dump_data.

Thanks, Anand

Reply via email to