[sheepdog] [PATCH 1/2] sheep: replace public functions from plain_store
Saeki Masaki
saeki.masaki at po.ntts.co.jp
Wed Feb 25 07:27:24 CET 2015
Function referenced from multiple places,
it should not be defined plain_store.c, so move to the appropriate location.
Signed-off-by: Masaki Saeki <saeki.masaki at po.ntts.co.jp>
---
include/util.h | 1 +
lib/util.c | 16 ++++++++++++++++
sheep/md.c | 11 +++++++++++
sheep/plain_store.c | 27 ---------------------------
sheep/sheep_priv.h | 2 --
5 files changed, 28 insertions(+), 29 deletions(-)
diff --git a/include/util.h b/include/util.h
index f214d89..aba7b32 100644
--- a/include/util.h
+++ b/include/util.h
@@ -93,6 +93,7 @@ void *xzalloc(size_t size);
void *xrealloc(void *ptr, size_t size);
void *xcalloc(size_t nmemb, size_t size);
void *xvalloc(size_t size);
+int prealloc(int fd, uint32_t size);
ssize_t xread(int fd, void *buf, size_t len);
ssize_t xwrite(int fd, const void *buf, size_t len);
ssize_t xpread(int fd, void *buf, size_t count, off_t offset);
diff --git a/lib/util.c b/lib/util.c
index 96efde2..73cf1af 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -111,6 +111,22 @@ void *xvalloc(size_t size)
return ret;
}
+/* preallocate the whole object */
+int prealloc(int fd, uint32_t size)
+{
+ int ret = xfallocate(fd, 0, 0, size);
+ if (ret < 0) {
+ if (errno != ENOSYS && errno != EOPNOTSUPP) {
+ sd_err("failed to preallocate space, %m");
+ return ret;
+ }
+
+ return xftruncate(fd, size);
+ }
+
+ return 0;
+}
+
static ssize_t _read(int fd, void *buf, size_t len)
{
ssize_t nr;
diff --git a/sheep/md.c b/sheep/md.c
index a90fdb9..15687b2 100644
--- a/sheep/md.c
+++ b/sheep/md.c
@@ -142,6 +142,17 @@ static struct disk *path_to_disk(const char *path)
return rb_search(&md.root, &key, rb, disk_cmp);
}
+size_t get_store_objsize(uint64_t oid)
+{
+ if (is_erasure_oid(oid)) {
+ uint8_t policy = get_vdi_copy_policy(oid_to_vid(oid));
+ int d;
+ ec_policy_to_dp(policy, &d, NULL);
+ return get_vdi_object_size(oid_to_vid(oid)) / d;
+ }
+ return get_objsize(oid, get_vdi_object_size(oid_to_vid(oid)));
+}
+
static int get_total_object_size(uint64_t oid, const char *wd, uint32_t epoch,
uint8_t ec_index, struct vnode_info *vinfo,
void *total)
diff --git a/sheep/plain_store.c b/sheep/plain_store.c
index 92f9a14..fef01ec 100644
--- a/sheep/plain_store.c
+++ b/sheep/plain_store.c
@@ -381,33 +381,6 @@ int default_read(uint64_t oid, const struct siocb *iocb)
return ret;
}
-/* Preallocate the whole object to get a better filesystem layout. */
-int prealloc(int fd, uint32_t size)
-{
- int ret = xfallocate(fd, 0, 0, size);
- if (ret < 0) {
- if (errno != ENOSYS && errno != EOPNOTSUPP) {
- sd_err("failed to preallocate space, %m");
- return ret;
- }
-
- return xftruncate(fd, size);
- }
-
- return 0;
-}
-
-size_t get_store_objsize(uint64_t oid)
-{
- if (is_erasure_oid(oid)) {
- uint8_t policy = get_vdi_copy_policy(oid_to_vid(oid));
- int d;
- ec_policy_to_dp(policy, &d, NULL);
- return get_vdi_object_size(oid_to_vid(oid)) / d;
- }
- return get_objsize(oid, get_vdi_object_size(oid_to_vid(oid)));
-}
-
int default_create_and_write(uint64_t oid, const struct siocb *iocb)
{
char path[PATH_MAX], tmp_path[PATH_MAX];
diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
index 46d0ba9..f102fc7 100644
--- a/sheep/sheep_priv.h
+++ b/sheep/sheep_priv.h
@@ -455,8 +455,6 @@ int local_req_wait(struct request_iocb *iocb);
void local_request_init(void);
-int prealloc(int fd, uint32_t size);
-
int objlist_cache_insert(uint64_t oid);
void objlist_cache_remove(uint64_t oid);
--
1.7.1
More information about the sheepdog
mailing list