From: Anoop C S Date: Fri, 3 Oct 2025 05:57:29 +0000 (+0530) Subject: vfs_gpfs: Fix CID 1666430 Control flow issues (DEADCODE) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46791989a94a3a8c61a21e3e88ae88caf8563c86;p=thirdparty%2Fsamba.git vfs_gpfs: Fix CID 1666430 Control flow issues (DEADCODE) Restore the saved errno properly and record it with vfs_aio_state once vfs_gpfs_get_winattrs_helper() returns for async code path. Signed-off-by: Anoop C S Reviewed-by: Guenther Deschner Autobuild-User(master): Günther Deschner Autobuild-Date(master): Wed Nov 26 16:48:00 UTC 2025 on atb-devel-224 --- diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c index 9c88641577e..3317d520e23 100644 --- a/source3/modules/vfs_gpfs.c +++ b/source3/modules/vfs_gpfs.c @@ -1448,11 +1448,6 @@ static int vfs_gpfs_get_winattrs_helper( 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; @@ -1468,16 +1463,12 @@ static int vfs_gpfs_get_winattrs_helper( 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; } @@ -1633,6 +1624,7 @@ static void vfs_gpfs_get_winattrs_do_async(void *private_data) 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));