OSDN Git Service

* fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink
authorcorinna <corinna>
Mon, 21 Sep 2009 10:56:50 +0000 (10:56 +0000)
committercorinna <corinna>
Mon, 21 Sep 2009 10:56:50 +0000 (10:56 +0000)
creation on filesystems not supporting hardlinks.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_disk_file.cc

index 3a4a818..bcd823f 100644 (file)
@@ -1,3 +1,8 @@
+2009-09-21  Corinna Vinschen  <corinna@vinschen.de>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink
+       creation on filesystems not supporting hardlinks.
+
 2009-09-20  Christopher Faylor  <me+cygwin@cgf.cx>
 
        * dcrt0.cc (dll_crt0_1): Add another hack to REALLY make sure that
index 5e66ae9..214be47 100644 (file)
@@ -1249,17 +1249,9 @@ fhandler_disk_file::link (const char *newpath)
     {
       if (status == STATUS_INVALID_DEVICE_REQUEST)
        {
-         /* FS doesn't support hard links.  Try to copy file. */
-         WCHAR pcw[(pc.get_nt_native_path ()->Length / sizeof (WCHAR)) + 1];
-         WCHAR newpcw[(newpc.get_nt_native_path ()->Length / sizeof (WCHAR))
-                      + 1];
-         if (!CopyFileW (pc.get_wide_win32_path (pcw),
-                         newpc.get_wide_win32_path (newpcw), TRUE))
-           {
-             __seterrno ();
-             return -1;
-           }
-         SetFileAttributesW (newpcw, pc.file_attributes ());
+         /* FS doesn't support hard links.  Linux returns EPERM. */
+         set_errno (EPERM);
+         return -1;
        }
       else
        {