This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Yesterday's CVS ci solved VBoxSharedFolderFS issues


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

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;

--
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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]