#define BTRFS_SUPER_INFO_OFFSET                        SZ_64K
 #define BTRFS_SUPER_INFO_SIZE                  4096
 
+/*
+ * The reserved space at the beginning of each device.
+ * It covers the primary super block and leaves space for potential use by other
+ * tools like bootloaders or to lower potential damage of accidental overwrite.
+ */
+#define BTRFS_DEVICE_RANGE_RESERVED                    (SZ_1M)
+
 /*
  * the super block basically lists the main trees of the FS
  * it currently lacks any block count etc etc
 
  */
 static int btrfs_trim_free_extents(struct btrfs_device *device, u64 *trimmed)
 {
-       u64 start = SZ_1M, len = 0, end = 0;
+       u64 start = BTRFS_DEVICE_RANGE_RESERVED, len = 0, end = 0;
        int ret;
 
        *trimmed = 0;
                        break;
                }
 
-               /* Ensure we skip the reserved area in the first 1M */
-               start = max_t(u64, start, SZ_1M);
+               /* Ensure we skip the reserved space on each device. */
+               start = max_t(u64, start, BTRFS_DEVICE_RANGE_RESERVED);
 
                /*
                 * If find_first_clear_extent_bit find a range that spans the
 
                avail_space = rounddown(avail_space, BTRFS_STRIPE_LEN);
 
                /*
-                * In order to avoid overwriting the superblock on the drive,
-                * btrfs starts at an offset of at least 1MB when doing chunk
-                * allocation.
-                *
-                * This ensures we have at least min_stripe_size free space
-                * after excluding 1MB.
+                * Ensure we have at least min_stripe_size on top of the
+                * reserved space on the device.
                 */
-               if (avail_space <= SZ_1M + min_stripe_size)
+               if (avail_space <= BTRFS_DEVICE_RANGE_RESERVED + min_stripe_size)
                        continue;
 
-               avail_space -= SZ_1M;
+               avail_space -= BTRFS_DEVICE_RANGE_RESERVED;
 
                devices_info[i].dev = device;
                devices_info[i].max_avail = avail_space;
 
 {
        switch (device->fs_devices->chunk_alloc_policy) {
        case BTRFS_CHUNK_ALLOC_REGULAR:
-               /*
-                * We don't want to overwrite the superblock on the drive nor
-                * any area used by the boot loader (grub for example), so we
-                * make sure to start at an offset of at least 1MB.
-                */
-               return max_t(u64, start, SZ_1M);
+               return max_t(u64, start, BTRFS_DEVICE_RANGE_RESERVED);
        case BTRFS_CHUNK_ALLOC_ZONED:
                /*
                 * We don't care about the starting region like regular