Subject: Re: [PATCH v3] Demonstrate bugs when a directory is replaced with a symlink

From: Kjetil Barvik <[email-masked]>
Date: Thu, 30 Jul 2009 01:01:40 +0200

Linus Torvalds <[email-masked]> writes:

> On Wed, 29 Jul 2009, Pickens, James E wrote:
>>
>> This test creates two directories, a/b and a/b-2, then replaces a/b with
>> a symlink to a/b-2, then merges that change into the 'baseline' commit,
>> which contains an unrelated change.
>
> Great tests.
>
> This patch should fix the 'checkout' issue.
>
> I made it use a new generic helper function ("check_path()"), since there 
> are other cases like this that use just 'lstat()', and I bet we want to 
> change that.
>
> The 'merge' issue is different, though: it's not due to a blind 'lstat()', 
> but due to a blind 'unlink()' done by 'remove_path()'. I think 
> 'remove_path()' should be taught to look for symlinks, and remove just the 
> symlink - but that's a bit more work, especially since the symlink cache 
> doesn't seem to expose any way to get the "what is the first symlink path" 
> information.
>
> Kjetil, can you look at that? 

  Yes, I will take a look.  Also, on all the other mails CC'ed to me
  today. Give me a cople of days.

  Sorry, I do not work at "full normal speed" for the moment.  But, I
  will try to my best.

  -- kjetil