* 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