diff options
Diffstat (limited to 'fs/kernfs/dir.c')
| -rw-r--r-- | fs/kernfs/dir.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c index 37989f02a226..2d881b381d2b 100644 --- a/fs/kernfs/dir.c +++ b/fs/kernfs/dir.c | |||
| @@ -201,10 +201,14 @@ static unsigned int kernfs_name_hash(const char *name, const void *ns) | |||
| 201 | static int kernfs_name_compare(unsigned int hash, const char *name, | 201 | static int kernfs_name_compare(unsigned int hash, const char *name, |
| 202 | const void *ns, const struct kernfs_node *kn) | 202 | const void *ns, const struct kernfs_node *kn) |
| 203 | { | 203 | { |
| 204 | if (hash != kn->hash) | 204 | if (hash < kn->hash) |
| 205 | return hash - kn->hash; | 205 | return -1; |
| 206 | if (ns != kn->ns) | 206 | if (hash > kn->hash) |
| 207 | return ns - kn->ns; | 207 | return 1; |
| 208 | if (ns < kn->ns) | ||
| 209 | return -1; | ||
| 210 | if (ns > kn->ns) | ||
| 211 | return 1; | ||
| 208 | return strcmp(name, kn->name); | 212 | return strcmp(name, kn->name); |
| 209 | } | 213 | } |
| 210 | 214 | ||
