* fhandler.h (enum query_state): Drop redundant query_stat_control.
* fhandler.cc (fhandler_base::open): Ditto. Add READ_CONTROL to access and FILE_OPEN_FOR_BACKUP_INTENT to create_options when opening for writing. Always set security attributes to avoid calling has_acls. * fhandler_disk_file.cc (fhandler_base::fstat_fs): Don't try to open file twice.
This commit is contained in:
		| @@ -425,16 +425,8 @@ fhandler_base::fstat_fs (struct __stat64 *buf) | ||||
| 	res = fstat_by_name (buf); | ||||
|       return res; | ||||
|     } | ||||
|   query_open (query_stat_control); | ||||
|   if (!(oret = open_fs (open_flags, 0)) && get_errno () == EACCES) | ||||
|     { | ||||
|       /* If we couldn't open the file, try a query open with no permissions. | ||||
| 	 This allows us to determine *some* things about the file, at least. */ | ||||
|       pc.set_exec (0); | ||||
|       query_open (query_read_attributes); | ||||
|       oret = open_fs (open_flags, 0); | ||||
|     } | ||||
|  | ||||
|   query_open (query_read_attributes); | ||||
|   oret = open_fs (open_flags, 0); | ||||
|   if (oret) | ||||
|     { | ||||
|       /* We now have a valid handle, regardless of the "nohandle" state. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user