summaryrefslogtreecommitdiff
path: root/net/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-11-16 11:14:34 -0800
committerSage Weil <sage@newdream.net>2011-01-12 15:15:12 -0800
commit6c0f3af72cb1622a66962a1180c36ef8c41be8e2 (patch)
tree66e415bf31ea31a3e9360c0ce624fd20b6050c89 /net/ceph
parent3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 (diff)
downloadlinux-3.10-6c0f3af72cb1622a66962a1180c36ef8c41be8e2.tar.gz
linux-3.10-6c0f3af72cb1622a66962a1180c36ef8c41be8e2.tar.bz2
linux-3.10-6c0f3af72cb1622a66962a1180c36ef8c41be8e2.zip
ceph: add dir_layout to inode
Add a ceph_dir_layout to the inode, and calculate dentry hash values based on the parent directory's specified dir_hash function. This is needed because the old default Linux dcache hash function is extremely week and leads to a poor distribution of files among dir fragments. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'net/ceph')
-rw-r--r--net/ceph/ceph_hash.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ceph/ceph_hash.c b/net/ceph/ceph_hash.c
index 815ef882679..0a1b53bce76 100644
--- a/net/ceph/ceph_hash.c
+++ b/net/ceph/ceph_hash.c
@@ -1,5 +1,6 @@
#include <linux/ceph/types.h>
+#include <linux/module.h>
/*
* Robert Jenkin's hash function.
@@ -104,6 +105,7 @@ unsigned ceph_str_hash(int type, const char *s, unsigned len)
return -1;
}
}
+EXPORT_SYMBOL(ceph_str_hash);
const char *ceph_str_hash_name(int type)
{
@@ -116,3 +118,4 @@ const char *ceph_str_hash_name(int type)
return "unknown";
}
}
+EXPORT_SYMBOL(ceph_str_hash_name);