diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-02-11 15:01:16 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-02-17 10:27:15 +0100 |
commit | 336ad5ce68f387e60b8862c709782a3e4cd7ee1e (patch) | |
tree | c9ec03e605d37421462f3b78804323608e8a125f /fs | |
parent | fcec314b097fc25a0f6bc5f5ea72fe1558f3e6ff (diff) | |
download | barebox-336ad5ce68f387e60b8862c709782a3e4cd7ee1e.tar.gz barebox-336ad5ce68f387e60b8862c709782a3e4cd7ee1e.tar.xz |
fs: simplify get_mtab_entry_by_path
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/fs.c | 23 |
1 files changed, 6 insertions, 17 deletions
@@ -170,29 +170,18 @@ EXPORT_SYMBOL(normalise_path); LIST_HEAD(mtab_list); static struct mtab_entry *mtab_root; -static struct mtab_entry *get_mtab_entry_by_path(const char *_path) +static struct mtab_entry *get_mtab_entry_by_path(const char *path) { struct mtab_entry *e = NULL; - char *path, *tok; - - if (*_path != '/') - return NULL; - - path = strdup(_path); - - tok = strchr(path + 1, '/'); - if (tok) - *tok = 0; for_each_mtab_entry(e) { - if (!strcmp(path, e->path)) - goto found; + int len = strlen(e->path); + if (!strncmp(path, e->path, len) && + (path[len] == '/' || path[len] == 0)) + return e; } - e = mtab_root; -found: - free(path); - return e; + return mtab_root; } static FILE files[MAX_FILES]; |