summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2013-04-26 16:06:07 -0500
committerDavid Sterba <dsterba@suse.cz>2013-08-09 14:32:28 +0200
commitba4f8cb41141ce5c03eb480c66ef7730eecf2efd (patch)
tree92c05d43d48f855a13a3bf2954c71d9711b7ab29
parent37003d3627369162e05f95e8b3b244a012a46589 (diff)
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>
-rw-r--r--extent-tree.c10
-rw-r--r--math.h33
-rw-r--r--volumes.c9
3 files changed, 35 insertions, 17 deletions
diff --git a/extent-tree.c b/extent-tree.c
index 63b1a386..e4582682 100644
--- a/extent-tree.c
+++ b/extent-tree.c
@@ -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;
diff --git a/math.h b/math.h
new file mode 100644
index 00000000..482dba33
--- /dev/null
+++ b/math.h
@@ -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
diff --git a/volumes.c b/volumes.c
index 0ff22833..10fdc487 100644
--- a/volumes.c
+++ b/volumes.c
@@ -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)
{