diff options
author | Miao Xie <miaox@cn.fujitsu.com> | 2012-09-13 06:51:36 -0400 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2012-12-11 13:31:30 -0500 |
commit | 3fed40cc97f32bebfd34a55364de9b44dcbede59 (patch) | |
tree | e0e991e2d7ff5643c07f2b63395c0d9e744596ba /fs/btrfs/math.h | |
parent | 29594404d7fe73cd80eaa4ee8c43dcc53970c60e (diff) |
Btrfs: cleanup duplicated division functions
div_factor{_fine} 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.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'fs/btrfs/math.h')
-rw-r--r-- | fs/btrfs/math.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/fs/btrfs/math.h b/fs/btrfs/math.h new file mode 100644 index 000000000000..b7816cefbd13 --- /dev/null +++ b/fs/btrfs/math.h | |||
@@ -0,0 +1,44 @@ | |||
1 | |||
2 | /* | ||
3 | * Copyright (C) 2012 Fujitsu. All rights reserved. | ||
4 | * Written by Miao Xie <miaox@cn.fujitsu.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public | ||
8 | * License v2 as published by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | * General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public | ||
16 | * License along with this program; if not, write to the | ||
17 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
18 | * Boston, MA 021110-1307, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __BTRFS_MATH_H | ||
22 | #define __BTRFS_MATH_H | ||
23 | |||
24 | #include <asm/div64.h> | ||
25 | |||
26 | static inline u64 div_factor(u64 num, int factor) | ||
27 | { | ||
28 | if (factor == 10) | ||
29 | return num; | ||
30 | num *= factor; | ||
31 | do_div(num, 10); | ||
32 | return num; | ||
33 | } | ||
34 | |||
35 | static inline u64 div_factor_fine(u64 num, int factor) | ||
36 | { | ||
37 | if (factor == 100) | ||
38 | return num; | ||
39 | num *= factor; | ||
40 | do_div(num, 100); | ||
41 | return num; | ||
42 | } | ||
43 | |||
44 | #endif | ||