mirror of
https://github.com/samba-team/samba.git
synced 2025-01-05 09:18:06 +03:00
vfs_aio_pthread: use SMB_VFS_NEXT_OPENAT() in aio_pthread_openat_fn()
1. Set 'aio_allow_open' to false if fsp->fsp_flags.is_pathref 2. Move !(how->flags & O_CREAT) and !(how->flags & O_EXCL) up and set 'aio_allow_open' to false 3. Use SMB_VFS_NEXT_OPENAT() instead of openat() for disable async opens case. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15453 Signed-off-by: MikeLiu <mikeliu@qnap.com> Reviewed-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Tue Aug 22 17:44:00 UTC 2023 on atb-devel-224 Autobuild-User(v4-18-test): Jule Anger <janger@samba.org> Autobuild-Date(v4-18-test): Mon Sep 4 09:49:30 UTC 2023 on atb-devel-224
This commit is contained in:
parent
fd1111c2f4
commit
14380eb832
@ -483,28 +483,28 @@ static int aio_pthread_openat_fn(vfs_handle_struct *handle,
|
||||
aio_allow_open = false;
|
||||
}
|
||||
|
||||
if (!aio_allow_open) {
|
||||
/* aio opens turned off. */
|
||||
return openat(fsp_get_pathref_fd(dirfsp),
|
||||
smb_fname->base_name,
|
||||
how->flags,
|
||||
how->mode);
|
||||
if (fsp->fsp_flags.is_pathref) {
|
||||
/* Use SMB_VFS_NEXT_OPENAT() to call openat() with O_PATH. */
|
||||
aio_allow_open = false;
|
||||
}
|
||||
|
||||
if (!(how->flags & O_CREAT)) {
|
||||
/* Only creates matter. */
|
||||
return openat(fsp_get_pathref_fd(dirfsp),
|
||||
smb_fname->base_name,
|
||||
how->flags,
|
||||
how->mode);
|
||||
aio_allow_open = false;
|
||||
}
|
||||
|
||||
if (!(how->flags & O_EXCL)) {
|
||||
/* Only creates with O_EXCL matter. */
|
||||
return openat(fsp_get_pathref_fd(dirfsp),
|
||||
smb_fname->base_name,
|
||||
how->flags,
|
||||
how->mode);
|
||||
aio_allow_open = false;
|
||||
}
|
||||
|
||||
if (!aio_allow_open) {
|
||||
/* aio opens turned off. */
|
||||
return SMB_VFS_NEXT_OPENAT(handle,
|
||||
dirfsp,
|
||||
smb_fname,
|
||||
fsp,
|
||||
how);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user