Loading fs/namei.c +7 −12 Original line number Original line Diff line number Diff line Loading @@ -1772,7 +1772,7 @@ static int link_path_walk(const char *name, struct nameidata *nd) err = may_lookup(nd); err = may_lookup(nd); if (err) if (err) break; return err; hash_len = hash_name(name); hash_len = hash_name(name); Loading @@ -1794,7 +1794,7 @@ static int link_path_walk(const char *name, struct nameidata *nd) struct qstr this = { { .hash_len = hash_len }, .name = name }; struct qstr this = { { .hash_len = hash_len }, .name = name }; err = parent->d_op->d_hash(parent, &this); err = parent->d_op->d_hash(parent, &this); if (err < 0) if (err < 0) break; return err; hash_len = this.hash_len; hash_len = this.hash_len; name = this.name; name = this.name; } } Loading Loading @@ -1829,15 +1829,13 @@ static int link_path_walk(const char *name, struct nameidata *nd) err = walk_component(nd, WALK_GET); err = walk_component(nd, WALK_GET); } } if (err < 0) if (err < 0) break; return err; if (err) { if (err) { const char *s = get_link(nd); const char *s = get_link(nd); if (unlikely(IS_ERR(s))) { if (unlikely(IS_ERR(s))) err = PTR_ERR(s); return PTR_ERR(s); break; } err = 0; err = 0; if (unlikely(!s)) { if (unlikely(!s)) { /* jumped */ /* jumped */ Loading @@ -1848,12 +1846,9 @@ static int link_path_walk(const char *name, struct nameidata *nd) continue; continue; } } } } if (!d_can_lookup(nd->path.dentry)) { if (unlikely(!d_can_lookup(nd->path.dentry))) err = -ENOTDIR; return -ENOTDIR; break; } } } return err; } } static const char *path_init(int dfd, const struct filename *name, static const char *path_init(int dfd, const struct filename *name, Loading Loading
fs/namei.c +7 −12 Original line number Original line Diff line number Diff line Loading @@ -1772,7 +1772,7 @@ static int link_path_walk(const char *name, struct nameidata *nd) err = may_lookup(nd); err = may_lookup(nd); if (err) if (err) break; return err; hash_len = hash_name(name); hash_len = hash_name(name); Loading @@ -1794,7 +1794,7 @@ static int link_path_walk(const char *name, struct nameidata *nd) struct qstr this = { { .hash_len = hash_len }, .name = name }; struct qstr this = { { .hash_len = hash_len }, .name = name }; err = parent->d_op->d_hash(parent, &this); err = parent->d_op->d_hash(parent, &this); if (err < 0) if (err < 0) break; return err; hash_len = this.hash_len; hash_len = this.hash_len; name = this.name; name = this.name; } } Loading Loading @@ -1829,15 +1829,13 @@ static int link_path_walk(const char *name, struct nameidata *nd) err = walk_component(nd, WALK_GET); err = walk_component(nd, WALK_GET); } } if (err < 0) if (err < 0) break; return err; if (err) { if (err) { const char *s = get_link(nd); const char *s = get_link(nd); if (unlikely(IS_ERR(s))) { if (unlikely(IS_ERR(s))) err = PTR_ERR(s); return PTR_ERR(s); break; } err = 0; err = 0; if (unlikely(!s)) { if (unlikely(!s)) { /* jumped */ /* jumped */ Loading @@ -1848,12 +1846,9 @@ static int link_path_walk(const char *name, struct nameidata *nd) continue; continue; } } } } if (!d_can_lookup(nd->path.dentry)) { if (unlikely(!d_can_lookup(nd->path.dentry))) err = -ENOTDIR; return -ENOTDIR; break; } } } return err; } } static const char *path_init(int dfd, const struct filename *name, static const char *path_init(int dfd, const struct filename *name, Loading