Re: mkstemp fails on cifs linux-2.6.31-rc1 / samba-3.3.6

Shirish Pargaonkar <[email protected]>
Newsgroups gmane.linux.file-systems.cifs
Message-ID <[email protected]>
On Wed, Jul 1, 2009 at 6:21 AM, Jeff Layton<[email protected]> wrote:
> On Wed, 2009-07-01 at 06:01 -0500, Shirish Pargaonkar wrote:
>>
>> I think the problem is, why EEXIST since file does not exist.  The
>> looping is I guess
>> because mktemp then attempts to create another file and receives EEXIST and it
>> goes on forever.
>> So the basic issues is why EEXIST since mktemp is attempting a file
>> which does not
>> exist on the server.
>
> The problem is that the lookup is returning a positive dentry since it
> just created the file. This makes the VFS turn around and return -EEXIST
> (see the second O_EXCL check in do_filp_open). So we do have to skip the
> create on lookup for O_EXCL or it won't work.
>
> I think what's needed is something like this patch. It seems to fix the
> testcase for me. That said, this is not adequately regression tested and
> should not be committed until it is.
>
> On that note, I'd like to reiterate my earlier sentiment that all of
> this create-on-lookup code was committed prematurely and should be
> backed out until it's more fully baked.
>
> Just my USD$.02...
>
> --
> Jeff Layton <[email protected]>
>

meant to send this to everybody but ended up sending only to Jeff,
so here it is again...

I think that is why it is not possible to exclusive create within
lookup intent code.
So, IMHO, we should put the check back in the cifs_lookup.
That is what NFS does, and cifs should do the same
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.