diff options
author | George Spelvin <linux@sciencehorizons.net> | 2016-05-20 08:41:37 -0400 |
---|---|---|
committer | George Spelvin <linux@sciencehorizons.net> | 2016-05-28 15:42:50 -0400 |
commit | fcfd2fbf22d2587196890103d41e3d554c47da0e (patch) | |
tree | d8e67346881f72e06782c08305b88c8ce167b698 /fs/dcache.c | |
parent | f4bcbe792b8f434e32487cff9d9e30ab45a3ce02 (diff) | |
download | lwn-fcfd2fbf22d2587196890103d41e3d554c47da0e.tar.gz lwn-fcfd2fbf22d2587196890103d41e3d554c47da0e.zip |
fs/namei.c: Add hashlen_string() function
We'd like to make more use of the highly-optimized dcache hash functions
throughout the kernel, rather than have every subsystem create its own,
and a function that hashes basic null-terminated strings is required
for that.
(The name is to emphasize that it returns both hash and length.)
It's actually useful in the dcache itself, specifically d_alloc_name().
Other uses in the next patch.
full_name_hash() is also tweaked to make it more generally useful:
1) Take a "char *" rather than "unsigned char *" argument, to
be consistent with hash_name().
2) Handle zero-length inputs. If we want more callers, we don't want
to make them worry about corner cases.
Signed-off-by: George Spelvin <linux@sciencehorizons.net>
Diffstat (limited to 'fs/dcache.c')
-rw-r--r-- | fs/dcache.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index d5ecc6e477da..19b751806789 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -1653,8 +1653,7 @@ struct dentry *d_alloc_name(struct dentry *parent, const char *name) struct qstr q; q.name = name; - q.len = strlen(name); - q.hash = full_name_hash(q.name, q.len); + q.hash_len = hashlen_string(name); return d_alloc(parent, &q); } EXPORT_SYMBOL(d_alloc_name); |