]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
smb: client: fix atomic open with O_DIRECT & O_SYNC
authorPaulo Alcantara <pc@manguebit.org>
Sat, 7 Mar 2026 21:20:16 +0000 (18:20 -0300)
committerSteve French <stfrench@microsoft.com>
Tue, 10 Mar 2026 22:21:42 +0000 (17:21 -0500)
commit4a7d2729dc99437dbb880a64c47828c0d191b308
treea8d36e71b3217c384a24c5bcd0d353ba32c7be57
parent1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
smb: client: fix atomic open with O_DIRECT & O_SYNC

When user application requests O_DIRECT|O_SYNC along with O_CREAT on
open(2), CREATE_NO_BUFFER and CREATE_WRITE_THROUGH bits were missed in
CREATE request when performing an atomic open, thus leading to
potentially data integrity issues.

Fix this by setting those missing bits in CREATE request when
O_DIRECT|O_SYNC has been specified in cifs_do_create().

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Reviewed-by: David Howells <dhowells@redhat.com>
Acked-by: Henrique Carvalho <henrique.carvalho@suse.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: linux-cifs@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifsglob.h
fs/smb/client/dir.c
fs/smb/client/file.c