[linux-cifs-client] new regression from cifs open on lookup patches

Jeff Layton jlayton at redhat.com
Fri May 22 11:48:44 GMT 2009


I've run across a new regression due to the open on lookup patches when
working against a server with functioning posix open calls. Prior to
those patches, opening a directory would simply result in a
revalidation of the dir, at most this would mean a QPathInfo call would
go out on the wire.

Since the introduction of these patches, opening a directory causes an
actual open call to go out on the wire for the directory. In general,
the server will then return a status of NT_STATUS_FILE_IS_A_DIRECTORY
that gets translated to -EACCES.

The main place I've noticed this is when trying recursively remove a
directory (rm -rf). rm will openat(AT_FDCWD, ...) the dir, and then try
to walk the subdirectories. That fails. Backing out the open intent
patches fixes the problem.

This will definitely need to be fixed before 2.6.30 is released, as I'm
certain this will break more than "rm". Attaching a testcase that can
be used to test this.

-- 
Jeff Layton <jlayton at redhat.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: opendir.c
Type: text/x-c++src
Size: 348 bytes
Desc: not available
Url : http://lists.samba.org/archive/linux-cifs-client/attachments/20090522/83f9f76a/opendir.bin


More information about the linux-cifs-client mailing list