Re: [PATCH] 2.5.50: unused code in link_path_walk()

From: Matthew Wilcox (willy@debian.org)
Date: Fri Dec 06 2002 - 11:15:19 EST


@@ -700,7 +700,6 @@
                                 if (this.name[1] != '.')
                                         break;
                                 follow_dotdot(&nd->mnt, &nd->dentry);
- inode = nd->dentry->d_inode;
                                 /* fallthrough */
                         case 1:
                                 goto return_base;

seems broken to me. if follow_dotdot() changes nd->dentry (can happen!),
inode needs to be changed. look:

        inode = nd->dentry->d_inode;
        for(;;) {
                err = exec_permission_lite(inode);
                if (this.name[0] == '.') switch (this.len) {
                        case 2:
                                if (this.name[1] != '.')
                                        break;
                                follow_dotdot(&nd->mnt, &nd->dentry);
                                inode = nd->dentry->d_inode;
                                /* fallthrough */
                        case 1:
                                continue;
                }
        }

btw, you should cc linux-fsdevel for patches to the VFS.

-- 
"It's not Hollywood.  War is real, war is primarily not about defeat or
victory, it is about death.  I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Dec 07 2002 - 22:00:26 EST