diff options
author | Arne Jansen <sensille@gmx.net> | 2011-04-12 10:43:21 +0200 |
---|---|---|
committer | Arne Jansen <sensille@gmx.net> | 2011-05-13 15:36:05 +0200 |
commit | bcd53741cc2af4342ac3ff6983bddc4a1b63b9b4 (patch) | |
tree | 5be83348abb93689effda63918fdec4fb0b5461c /fs/btrfs/super.c | |
parent | 7cf96da3ec7ca225acf4f284b0e904a1f5f98821 (diff) | |
download | op-kernel-dev-bcd53741cc2af4342ac3ff6983bddc4a1b63b9b4.zip op-kernel-dev-bcd53741cc2af4342ac3ff6983bddc4a1b63b9b4.tar.gz |
btrfs: move btrfs_cmp_device_free_bytes to super.c
this function won't be used here anymore, so move it super.c where it is
used for df-calculation
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r-- | fs/btrfs/super.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 0ac712e..32fe8b3 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -913,6 +913,32 @@ static int btrfs_remount(struct super_block *sb, int *flags, char *data) 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 * file data. |