Mail Archives: cygwin/2009/07/22/13:03:19
--------------090806070207000107020709
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hi Corinna,
Corinna Vinschen wrote:
>> The only thing obviously broken now are symlinks. I've done some
>> debugging and tracked it down to the fact that any call like this:
>>
>> path.c:2254: if (NT_SUCCESS (status)
>> path.c:2255: && NT_SUCCESS (status
>> path.c:2256: = NtQueryInformationFile (h, &io, &fbi, sizeof fbi,
>> path.c:2257: FileBasicInformation)))
>>
>> will return STATUS_NOT_SUPPORTED. I will need to do some further
>> learning to understand if this is a show stopper for symlinks,
>> although any wisdom dispensed would be greatly appreciated.
>>
>
> Is ity possible that the status code is not the one from
> the NtQueryInformationFile call but rather from the
> NtCreateFile call before? In that case the first NT_SUCCESS (status)
> is what fails.
>
> A couple of lines above, line 2211ff, there's this:
>
> ...
>
> There are two places which check for STATUS_EAS_NOT_SUPPORTED.
> If you check additionally for STATUS_NOT_SUPPORTED in both places,
> does it work now?
>
That worked! Thank you very very much. I've attached the patch.
I guess it remains to be seen if there are any other issues. But so
far it's looking good :-)
Kind regards,
Shaddy
--------------090806070207000107020709
Content-Type: text/plain;
name="vboxsymlinks.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="vboxsymlinks.diff"
Index: winsup/cygwin/path.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/path.cc,v
retrieving revision 1.555
diff -u -r1.555 path.cc
--- winsup/cygwin/path.cc 17 Jul 2009 09:00:19 -0000 1.555
+++ winsup/cygwin/path.cc 22 Jul 2009 16:58:00 -0000
@@ -2210,6 +2210,7 @@
eabuf, easize);
/* No right to access EAs or EAs not supported? */
if (status == STATUS_ACCESS_DENIED || status == STATUS_EAS_NOT_SUPPORTED
+ || status == STATUS_NOT_SUPPORTED
/* Or a bug in Samba 3.2.x (x <= 7) when accessing a share's root dir
which has EAs enabled? */
|| status == STATUS_INVALID_PARAMETER)
@@ -2217,7 +2218,7 @@
no_ea = true;
/* If EAs are not supported, there's no sense to check them again
whith suffixes attached. So we set eabuf/easize to 0 here once. */
- if (status == STATUS_EAS_NOT_SUPPORTED)
+ if (status == STATUS_EAS_NOT_SUPPORTED || status == STATUS_NOT_SUPPORTED)
{
eabuf = NULL;
easize = 0;
--------------090806070207000107020709
Content-Type: text/plain; charset=us-ascii
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
--------------090806070207000107020709--
- Raw text -