diff options
| author | Frank Sorenson <sorenson@redhat.com> | 2026-09-30 15:47:15 -0500 |
|---|---|---|
| committer | Paulo Alcantara <pc@manguebit.org> | 2026-09-30 23:17:30 -0300 |
| commit | 19465a9aeb664f1d710d0d22c07c31bfb7c85446 (patch) | |
| tree | 4a055308a2ffbdc7c2dee754a46dd87707ae7737 /kernel/trace/trace_seq.c | |
| parent | 53c5c2c1095eb21e214811fec16cd75f89d72ee2 (diff) | |
| download | linux-next-19465a9aeb664f1d710d0d22c07c31bfb7c85446.tar.gz linux-next-19465a9aeb664f1d710d0d22c07c31bfb7c85446.zip | |
smb: client: split cifsFileInfo bitfields to avoid shared-byte RMW races
The invalidHandle, swapfile, oplock_break_cancelled, offload,
and status_file_deleted fields are stored in the same bitfield byte
in struct cifsFileInfo, but are updated in different code paths that
may run simultaneously, and are protected by different locks. Since
bitfield assignments generate byte-level read-modify-write operations,
a modification to one flag can overwrite a concurrent modification to
another flag.
To avoid these races, convert these flags from a bitfield to
separate bool fields.
Closes: https://lore.kernel.org/r/7689764e-c0f6-4016-9557-b54cf4a3de4e@redhat.com
Fixes: 3bc303c254335 ("cifs: convert oplock breaks to use slow_work facility (try #4)")
Fixes: 4e8aea30f7751 ("smb3: enable swap on SMB3 mounts")
Fixes: ffceb7640cbfe ("smb: client: do not defer close open handles to deleted files")
Fixes: 173217bd73365 ("smb3: retrying on failed server close")
Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Cc: stable@vger.kernel.org
Reviewed-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Diffstat (limited to 'kernel/trace/trace_seq.c')
0 files changed, 0 insertions, 0 deletions
