Index: /trunk/src/VBox/Additions/linux/sharedfolders/dirops.c
===================================================================
--- /trunk/src/VBox/Additions/linux/sharedfolders/dirops.c	(revision 78133)
+++ /trunk/src/VBox/Additions/linux/sharedfolders/dirops.c	(revision 78134)
@@ -692,5 +692,5 @@
             pReq->CreateParms.CreateFlags = SHFL_CF_LOOKUP | SHFL_CF_ACT_FAIL_IF_NEW;
 
-            LogFunc(("Calling VbglR0SfHostReqCreate on %s\n", path->String.utf8));
+            SFLOG2(("vbsf_inode_lookup: Calling VbglR0SfHostReqCreate on %s\n", path->String.utf8));
             rc = VbglR0SfHostReqCreate(pSuperInfo->map.root, pReq);
             if (RT_SUCCESS(rc)) {
@@ -715,7 +715,11 @@
                 }
             } else if (rc == VERR_INVALID_NAME) {
+                SFLOGFLOW(("vbsf_inode_lookup: VERR_INVALID_NAME\n"));
                 dret = dentry; /* this can happen for names like 'foo*' on a Windows host */
+            } else if (rc == VERR_FILENAME_TOO_LONG) {
+                SFLOG(("vbsf_inode_lookup: VbglR0SfHostReqCreate failed on %s: VERR_FILENAME_TOO_LONG\n", path->String.utf8));
+                dret = (struct dentry *)ERR_PTR(-ENAMETOOLONG);
             } else {
-                LogFunc(("VbglR0SfHostReqCreate failed on %s: %Rrc\n", path->String.utf8, rc));
+                SFLOG(("vbsf_inode_lookup: VbglR0SfHostReqCreate failed on %s: %Rrc\n", path->String.utf8, rc));
                 dret = (struct dentry *)ERR_PTR(-EPROTO);
             }
@@ -731,10 +735,14 @@
                 dret = NULL;
             }
-        } else
+        } else {
+            SFLOGFLOW(("vbsf_inode_lookup: -ENOMEM (phys heap)\n"));
             dret = (struct dentry *)ERR_PTR(-ENOMEM);
+        }
         if (path)
             kfree(path);
-    } else
+    } else {
+        SFLOG(("vbsf_inode_lookup: vbsf_path_from_dentry failed: %d\n", rc));
         dret = (struct dentry *)ERR_PTR(rc);
+    }
     return dret;
 }
