* 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:
Corinna Vinschen
2007-07-27 08:38:00 +00:00
parent 214c3a1167
commit fe7bbe1504
4 changed files with 18 additions and 20 deletions

View File

@ -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.