* fhandler_disk_file.cc (fhandler_base::fstat_fs): Use created

handle regardless of nohandle state.  Clean up afterwards.
This commit is contained in:
Corinna Vinschen 2004-03-23 11:26:54 +00:00
parent 6653af6cc2
commit 88506c6752
2 changed files with 16 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2004-03-23 Corinna Vinschen <corinna@vinschen.de>
* fhandler_disk_file.cc (fhandler_base::fstat_fs): Use created
handle regardless of nohandle state. Clean up afterwards.
2004-03-23 Gerd Spalink <Gerd.Spalink@t-online.de>
* autoload.cc: Load eight more functions for waveIn support.

View File

@ -201,13 +201,21 @@ fhandler_base::fstat_fs (struct __stat64 *buf)
oret = open_fs (open_flags, 0);
}
if (!oret || get_nohandle ())
res = fstat_by_name (buf);
else
if (oret)
{
/* We now have a valid handle, regardless of the "nohandle" state.
Since fhandler_base::open only calls CloseHandle if !get_nohandle,
we have to set it to false before calling close_fs and restore
the state afterwards. */
res = fstat_by_handle (buf);
bool nohandle = get_nohandle ();
set_nohandle (false);
close_fs ();
set_nohandle (nohandle);
set_io_handle (NULL);
}
else
res = fstat_by_name (buf);
return res;
}