ret = gpfswrap_get_winattrs(fsp_get_pathref_fd(fd), &state->attrs);
- if (ret == -1) {
- state->job_state.vfs_aio_state.error = errno;
- return ret;
- }
-
if (ret == -1 && errno == EACCES) {
int saved_errno = 0;
ret = gpfswrap_get_winattrs(
fsp_get_pathref_fd(fd),
&state->attrs);
- if (ret == -1) {
- saved_errno = errno;
- }
+
+ saved_errno = errno;
drop_effective_capability(DAC_OVERRIDE_CAPABILITY);
- if (saved_errno != 0) {
- state->job_state.vfs_aio_state.error = saved_errno;
- ret = saved_errno;
- }
+ errno = saved_errno;
}
return ret;
}
ret = vfs_gpfs_get_winattrs_helper(state);
if (ret == -1) {
+ state->job_state.vfs_aio_state.error = errno;
DBG_WARNING("Getting winattrs failed for %s: %s\n",
state->job_state.dir_fsp->fsp_name->base_name,
strerror(errno));