Btrfs-progs: cleanup duplicated division functions

div_factor has been implemented for two times, cleanup it.
And I move them into a independent file named math.h because they are
common math functions.

[Eric Sandeen: port kernel commit 3fed40c to userspace]

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
Eric Sandeen 2013-04-26 16:06:07 -05:00 committed by David Sterba
parent 37003d3627
commit ba4f8cb411
3 changed files with 35 additions and 17 deletions

View File

@ -27,6 +27,7 @@
#include "crc32c.h"
#include "volumes.h"
#include "free-space-cache.h"
#include "math.h"
#define PENDING_EXTENT_INSERT 0
#define PENDING_EXTENT_DELETE 1
@ -300,15 +301,6 @@ wrapped:
goto again;
}
static u64 div_factor(u64 num, int factor)
{
if (factor == 10)
return num;
num *= factor;
num /= 10;
return num;
}
static int block_group_state_bits(u64 flags)
{
int bits = 0;

33
math.h Normal file
View File

@ -0,0 +1,33 @@
/*
* Copyright (C) 2012 Fujitsu. All rights reserved.
* Written by Miao Xie <miaox@cn.fujitsu.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License v2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 021110-1307, USA.
*/
#ifndef __BTRFS_MATH_H
#define __BTRFS_MATH_H
static inline u64 div_factor(u64 num, int factor)
{
if (factor == 10)
return num;
num *= factor;
num /= 10;
return num;
}
#endif

View File

@ -29,6 +29,7 @@
#include "transaction.h"
#include "print-tree.h"
#include "volumes.h"
#include "math.h"
struct stripe {
struct btrfs_device *dev;
@ -630,14 +631,6 @@ int btrfs_add_system_chunk(struct btrfs_trans_handle *trans,
return 0;
}
static u64 div_factor(u64 num, int factor)
{
if (factor == 10)
return num;
num *= factor;
return num / 10;
}
static u64 chunk_bytes_by_type(u64 type, u64 calc_size, int num_stripes,
int sub_stripes)
{