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:
		| @@ -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); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user