diff options
Diffstat (limited to 'libdiskfs')
-rw-r--r-- | libdiskfs/dir-lookup.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libdiskfs/dir-lookup.c b/libdiskfs/dir-lookup.c index 8df81cfa..76b9cb54 100644 --- a/libdiskfs/dir-lookup.c +++ b/libdiskfs/dir-lookup.c @@ -56,6 +56,7 @@ diskfs_S_dir_lookup (struct protid *dircred, int type; struct protid *newpi = 0; struct peropen *newpo = 0; + int orig_flags = flags; if (!dircred) return EOPNOTSUPP; @@ -447,7 +448,7 @@ diskfs_S_dir_lookup (struct protid *dircred, gotit: type = np->dn_stat.st_mode & S_IFMT; - if (mustbedir && type != S_IFDIR) + if ((mustbedir || orig_flags & O_DIRECTORY) && type != S_IFDIR) { err = ENOTDIR; goto out; |