summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--trans/fakeroot.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/trans/fakeroot.c b/trans/fakeroot.c
index 63303a09..4275152d 100644
--- a/trans/fakeroot.c
+++ b/trans/fakeroot.c
@@ -554,13 +554,11 @@ netfs_attempt_chmod (struct iouser *cred, struct node *np, mode_t mode)
/* Make sure that `check_openmodes' will still always be able to reopen
it. */
- real_mode = mode;
nn = netfs_node_netnode (np);
- if (nn->openmodes & O_READ)
- real_mode |= S_IRUSR;
- if (nn->openmodes & O_WRITE)
- real_mode |= S_IWUSR;
- if (nn->openmodes & O_EXEC)
+ real_mode = mode;
+ real_mode |= S_IRUSR;
+ real_mode |= S_IWUSR;
+ if (S_ISDIR (mode) || (nn->openmodes & O_EXEC))
real_mode |= S_IXUSR;
/* We don't bother with error checking since the fake mode change should