summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/fhandler_disk_file.cc3
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 828bf09c7..e6fcbbaeb 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::link ): Translate
+ STATUS_NOT_SUPPORTED to EPERM as well.
+
2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx>
* dtable.cc (dtable::dup3): Only return with lock set when O_EXCL flag
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index 1f47a35a9..2c63b6468 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -1283,7 +1283,8 @@ fhandler_disk_file::link (const char *newpath)
status = NtSetInformationFile (fh, &io, pfli, size, FileLinkInformation);
if (!NT_SUCCESS (status))
{
- if (status == STATUS_INVALID_DEVICE_REQUEST)
+ if (status == STATUS_INVALID_DEVICE_REQUEST
+ || status == STATUS_NOT_SUPPORTED)
{
/* FS doesn't support hard links. Linux returns EPERM. */
set_errno (EPERM);