Loading fs/namei.c +3 −4 Original line number Original line Diff line number Diff line Loading @@ -753,9 +753,11 @@ follow_link(struct path *link, struct nameidata *nd, void **p) BUG_ON(nd->flags & LOOKUP_RCU); BUG_ON(nd->flags & LOOKUP_RCU); if (link->mnt == nd->path.mnt) mntget(link->mnt); if (unlikely(current->total_link_count >= 40)) { if (unlikely(current->total_link_count >= 40)) { *p = ERR_PTR(-ELOOP); /* no ->put_link(), please */ *p = ERR_PTR(-ELOOP); /* no ->put_link(), please */ path_put_conditional(link, nd); path_put(&nd->path); path_put(&nd->path); return -ELOOP; return -ELOOP; } } Loading @@ -765,9 +767,6 @@ follow_link(struct path *link, struct nameidata *nd, void **p) touch_atime(link->mnt, dentry); touch_atime(link->mnt, dentry); nd_set_link(nd, NULL); nd_set_link(nd, NULL); if (link->mnt == nd->path.mnt) mntget(link->mnt); error = security_inode_follow_link(link->dentry, nd); error = security_inode_follow_link(link->dentry, nd); if (error) { if (error) { *p = ERR_PTR(error); /* no ->put_link(), please */ *p = ERR_PTR(error); /* no ->put_link(), please */ Loading Loading
fs/namei.c +3 −4 Original line number Original line Diff line number Diff line Loading @@ -753,9 +753,11 @@ follow_link(struct path *link, struct nameidata *nd, void **p) BUG_ON(nd->flags & LOOKUP_RCU); BUG_ON(nd->flags & LOOKUP_RCU); if (link->mnt == nd->path.mnt) mntget(link->mnt); if (unlikely(current->total_link_count >= 40)) { if (unlikely(current->total_link_count >= 40)) { *p = ERR_PTR(-ELOOP); /* no ->put_link(), please */ *p = ERR_PTR(-ELOOP); /* no ->put_link(), please */ path_put_conditional(link, nd); path_put(&nd->path); path_put(&nd->path); return -ELOOP; return -ELOOP; } } Loading @@ -765,9 +767,6 @@ follow_link(struct path *link, struct nameidata *nd, void **p) touch_atime(link->mnt, dentry); touch_atime(link->mnt, dentry); nd_set_link(nd, NULL); nd_set_link(nd, NULL); if (link->mnt == nd->path.mnt) mntget(link->mnt); error = security_inode_follow_link(link->dentry, nd); error = security_inode_follow_link(link->dentry, nd); if (error) { if (error) { *p = ERR_PTR(error); /* no ->put_link(), please */ *p = ERR_PTR(error); /* no ->put_link(), please */ Loading