Commit aa2dfb37 authored by Chris Mason's avatar Chris Mason

Merge branch 'allocator' of...

Merge branch 'allocator' of git://git.kernel.org/pub/scm/linux/kernel/git/arne/btrfs-unstable-arne into inode_numbers
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parents 945d8962 73c5de00
...@@ -914,6 +914,32 @@ static int btrfs_remount(struct super_block *sb, int *flags, char *data) ...@@ -914,6 +914,32 @@ static int btrfs_remount(struct super_block *sb, int *flags, char *data)
return 0; return 0;
} }
/* Used to sort the devices by max_avail(descending sort) */
static int btrfs_cmp_device_free_bytes(const void *dev_info1,
const void *dev_info2)
{
if (((struct btrfs_device_info *)dev_info1)->max_avail >
((struct btrfs_device_info *)dev_info2)->max_avail)
return -1;
else if (((struct btrfs_device_info *)dev_info1)->max_avail <
((struct btrfs_device_info *)dev_info2)->max_avail)
return 1;
else
return 0;
}
/*
* sort the devices by max_avail, in which max free extent size of each device
* is stored.(Descending Sort)
*/
static inline void btrfs_descending_sort_devices(
struct btrfs_device_info *devices,
size_t nr_devices)
{
sort(devices, nr_devices, sizeof(struct btrfs_device_info),
btrfs_cmp_device_free_bytes, NULL);
}
/* /*
* The helper to calc the free space on the devices that can be used to store * The helper to calc the free space on the devices that can be used to store
* file data. * file data.
......
This diff is collapsed.
...@@ -144,6 +144,7 @@ struct btrfs_device_info { ...@@ -144,6 +144,7 @@ struct btrfs_device_info {
struct btrfs_device *dev; struct btrfs_device *dev;
u64 dev_offset; u64 dev_offset;
u64 max_avail; u64 max_avail;
u64 total_avail;
}; };
struct map_lookup { struct map_lookup {
...@@ -157,21 +158,6 @@ struct map_lookup { ...@@ -157,21 +158,6 @@ struct map_lookup {
struct btrfs_bio_stripe stripes[]; struct btrfs_bio_stripe stripes[];
}; };
/* Used to sort the devices by max_avail(descending sort) */
int btrfs_cmp_device_free_bytes(const void *dev_info1, const void *dev_info2);
/*
* sort the devices by max_avail, in which max free extent size of each device
* is stored.(Descending Sort)
*/
static inline void btrfs_descending_sort_devices(
struct btrfs_device_info *devices,
size_t nr_devices)
{
sort(devices, nr_devices, sizeof(struct btrfs_device_info),
btrfs_cmp_device_free_bytes, NULL);
}
int btrfs_account_dev_extents_size(struct btrfs_device *device, u64 start, int btrfs_account_dev_extents_size(struct btrfs_device *device, u64 start,
u64 end, u64 *length); u64 end, u64 *length);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment