Cygwin: AF_LOCAL::fstatvfs: use our handle if O_PATH is set
If O_PATH is set, then the fhandler_socket_local object has a handle that can be used for getting the statvfs information. Use it by calling fhandler_base::fstatvfs_by_handle. Without this change, fhandler_disk_file::fstatfvs would be called on a new fhandler_disk object, which would then have to be opened.
This commit is contained in:
parent
141437d374
commit
23cb58af62
@ -675,6 +675,13 @@ fhandler_socket_local::fstatvfs (struct statvfs *sfs)
|
||||
{
|
||||
if (get_sun_path () && get_sun_path ()[0] == '\0')
|
||||
return fhandler_socket_wsock::fstatvfs (sfs);
|
||||
if (get_flags () & O_PATH)
|
||||
/* We already have a handle. */
|
||||
{
|
||||
HANDLE h = get_handle ();
|
||||
if (h)
|
||||
return fstatvfs_by_handle (h, sfs);
|
||||
}
|
||||
fhandler_disk_file fh (pc);
|
||||
fh.get_device () = FH_FS;
|
||||
return fh.fstatvfs (sfs);
|
||||
|
Loading…
Reference in New Issue
Block a user