summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_virtual.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fhandler_virtual.cc')
-rw-r--r--winsup/cygwin/fhandler_virtual.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/winsup/cygwin/fhandler_virtual.cc b/winsup/cygwin/fhandler_virtual.cc
index 07b8e4b0b..2d56d7413 100644
--- a/winsup/cygwin/fhandler_virtual.cc
+++ b/winsup/cygwin/fhandler_virtual.cc
@@ -1,7 +1,7 @@
/* fhandler_virtual.cc: base fhandler class for virtual filesystems
- Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
- Red Hat, Inc.
+ Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
+ 2013 Red Hat, Inc.
This file is part of Cygwin.
@@ -84,10 +84,9 @@ fhandler_virtual::opendir (int fd)
else
{
cygheap_fdnew cfd;
- if (cfd >= 0)
+ if (cfd >= 0 && open (O_RDONLY, 0))
{
cfd = this;
- cfd->nohandle (true);
dir->__d_fd = cfd;
dir->__fh = this;
res = dir;
@@ -273,6 +272,7 @@ fhandler_virtual::fstatvfs (struct statvfs *sfs)
set to something useful. Just as on Linux. */
memset (sfs, 0, sizeof (*sfs));
sfs->f_bsize = sfs->f_frsize = 4096;
+ sfs->f_flag = ST_RDONLY;
sfs->f_namemax = NAME_MAX;
return 0;
}