aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Alain O'Dea <alain.odea@verafin.com>2014-02-05 21:24:28 +0000
committerGravatar Austin Seipp <austin@well-typed.com>2014-02-28 12:04:06 -0600
commit444750d2e5c6b843b937cbe876ce248e76a2a245 (patch)
treeb90e9ffd6388295f20616e8aac35b66fdf9a815b
parent0eb7d4be2c20ecb5872db429855b94a704b285f5 (diff)
Handle EROFS/ETXTBSY as permission denied in `fileAccess` (re #8741)
This extends `System.Posix.Files.`access` to map EROFS & ETXTBSY to mean permission denied just like EACCESS. Based on a patch by Alain O'Dea and comments by Duncan Coutts Authored-by: Alain O'Dea <alain.odea@verafin.com> Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org> (cherry picked from commit ecc92abad017cf12d8eb83509d4d57ae14ad47f9)
-rw-r--r--System/Posix/Files.hsc2
-rw-r--r--changelog.md4
2 files changed, 5 insertions, 1 deletions
diff --git a/System/Posix/Files.hsc b/System/Posix/Files.hsc
index 57f771e..704ef8a 100644
--- a/System/Posix/Files.hsc
+++ b/System/Posix/Files.hsc
@@ -151,7 +151,7 @@ access name flags =
if (r == 0)
then return True
else do err <- getErrno
- if (err == eACCES)
+ if (err == eACCES || err == eROFS || err == eTXTBSY)
then return False
else throwErrnoPath "fileAccess" name
diff --git a/changelog.md b/changelog.md
index 272c503..54e5a96 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+## 2.7.0.1
+
+ * Handle EROFS and ETXTBSY as (non-exceptional) permission denied in `fileAccess`
+
## 2.7.0.0 *Nov 2013*
* New `forkProcessWithUnmask` function in the style of `forkIOWithUnmask`