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

Olaf Dietsche (olaf.dietsche#list.linux-kernel@t-online.de)
Fri, 06 Dec 2002 17:52:13 +0100


Matthew Wilcox <willy@debian.org> writes:

> @@ -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;
> }
> }

You looked at the _first_ switch statement. You must go further down
to the _second_ switch. *There*, you don't need this assignment, AFAICS.

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

Thanks for this pointer, I'll spam linux-fsdevel in the future ;-).

Regards, Olaf.
-
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/