Experimental change for btrfs perf

BUG=None
TEST=None

Change-Id: I0568e685855b404a11dcbb39f786bc776b32ca0a
Reviewed-on: https://chromium-review.googlesource.com/467766
Commit-Ready: Xiaochu Liu <xiaochu@chromium.org>
Tested-by: Xiaochu Liu <xiaochu@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/build_library/disk_layout_util.sh b/build_library/disk_layout_util.sh
index 33bd1bb..88759b1 100644
--- a/build_library/disk_layout_util.sh
+++ b/build_library/disk_layout_util.sh
@@ -411,8 +411,8 @@
     rm "${squash_file}"
     ;;
   btrfs)
-    sudo mkfs.${fs_format} -b "$((fs_bytes))" -L "${fs_label}" "${part_dev}" \
-        "${fs_options_arr[@]}"
+    sudo mkfs.${fs_format} -b "$((fs_bytes))" -d single -m single -M \
+      -L "${fs_label}" -O "${fs_options_arr[@]}" "${part_dev}"
     ;;
   *)
     die "Unknown fs format '${fs_format}' for part ${part_num}";;
diff --git a/build_library/filesystem_util.sh b/build_library/filesystem_util.sh
index cb055b0..ac9a7c1 100644
--- a/build_library/filesystem_util.sh
+++ b/build_library/filesystem_util.sh
@@ -60,6 +60,11 @@
   local all_options="${ro_rw}"
   [[ -n "${mount_options}" ]] && all_options="${ro_rw},${mount_options}"
 
+  # TODO: move this to layout file.(crbug.com/710929)
+  case ${fs_format} in
+  btrfs) all_options+=",compress=zlib";;
+  esac
+
   case ${fs_format} in
   ext[234]|fat12|fat16|fat32|fat|vfat|btrfs|"")
     local extra_flags=()
diff --git a/build_library/legacy_disk_layout.json b/build_library/legacy_disk_layout.json
index 129c1d6..1bf832f 100644
--- a/build_library/legacy_disk_layout.json
+++ b/build_library/legacy_disk_layout.json
@@ -113,7 +113,8 @@
         "type": "rootfs",
         "fs_format": "ext2",
         "fs_options": {
-          "squashfs": "-noI -comp lzo -Xalgorithm lzo1x_999 -Xcompression-level 9"
+          "squashfs": "-noI -comp lzo -Xalgorithm lzo1x_999 -Xcompression-level 9",
+          "btrfs": "skinny-metadata"
         },
         "size": "2048 MiB",
         "fs_size": "1240 MiB",