From 86a4b0c733dab174b9eb1b556b881f565d7bd819 Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Fri, 29 Feb 2008 16:38:51 +0000
Subject: [PATCH] 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod):
 Call close_fs 	instead of close to avoid calling close from wrong class when
 changing 	a file system based device node. 
 (fhandler_disk_file::fchown): Ditto. 	(fhandler_disk_file::facl): Ditto.

---
 winsup/cygwin/ChangeLog             | 8 ++++++++
 winsup/cygwin/fhandler_disk_file.cc | 6 +++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index b91c83c43..1e5896fb5 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,11 @@
+2008-02-29  Corinna Vinschen  <corinna@vinschen.de>
+
+	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call close_fs
+	instead of close to avoid calling close from wrong class when changing
+	a file system based device node.
+	(fhandler_disk_file::fchown): Ditto.
+	(fhandler_disk_file::facl): Ditto.
+
 2008-02-28  Corinna Vinschen  <corinna@vinschen.de>
 
 	* exceptions.cc (_cygtls::handle_exceptions): When being debugged,
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index c06b5ffdd..fbd66e2ff 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -784,7 +784,7 @@ fhandler_disk_file::fchmod (mode_t mode)
     res = 0;
 
   if (oret)
-    close ();
+    close_fs ();
 
   return res;
 }
@@ -826,7 +826,7 @@ fhandler_disk_file::fchown (__uid32_t uid, __gid32_t gid)
       res = set_file_attribute (get_handle (), pc, uid, gid, attrib);
     }
   if (oret)
-    close ();
+    close_fs ();
 
   return res;
 }
@@ -941,7 +941,7 @@ cant_access_acl:
     }
 
   if (oret)
-    close ();
+    close_fs ();
 
   return res;
 }