Re: [PATCH] Fix __d_path for lazy unmounts

From: John Johansen
Date: Mon Feb 22 2010 - 12:24:56 EST


john.johansen@xxxxxxxxxxxxx wrote:
> From: John Johansen <john.johansen@xxxxxxxxxxxxx>
>
> When __d_path() hits a lazily unmounted mount point, it tries to prepend
> the name of the lazily unmounted dentry to the path name. It gets this wrong,
> and also overwrites the slash that separates the name from the following
> pathname component. This patch fixes that; if a process was in directory
> /foo/bar and /foo got lazily unmounted, the old result was ``foobar'' (note the
> missing slash), while the new result with this patch is ``/foo/bar''.
>
It seems I left out the basic test for this. From a shell you can do

> mkdir /tmp/foo
> sudo mount --bind /home/jj /tmp/foo #substitute /home/jj as you wish
> cd /tmp/foo/bar # assumes /home/jj/bar exists
> /bin/pwd
/tmp/foo/bar
> sudo umount -l /tmp/foo
> /bin/pwd
jjbar
> > cd ..
> > /bin/pwd
jj


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/