]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
smb: client: fix filename matching of deferred files
authorPaulo Alcantara <pc@manguebit.org>
Wed, 17 Sep 2025 19:03:22 +0000 (16:03 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Sep 2025 09:16:52 +0000 (11:16 +0200)
commita39e32f031832b5b8ac38bc7f8fc27c7866f086f
treee29e396a284aa4fe31dc168e3c4efb94cf5b1ec0
parent581fb78e0388b78911b0c920e4073737090c8b5f
smb: client: fix filename matching of deferred files

[ Upstream commit 93ed9a2951308db374cba4562533dde97bac70d3 ]

Fix the following case where the client would end up closing both
deferred files (foo.tmp & foo) after unlink(foo) due to strstr() call
in cifs_close_deferred_file_under_dentry():

  fd1 = openat(AT_FDCWD, "foo", O_WRONLY|O_CREAT|O_TRUNC, 0666);
  fd2 = openat(AT_FDCWD, "foo.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666);
  close(fd1);
  close(fd2);
  unlink("foo");

Fixes: e3fc065682eb ("cifs: Deferred close performance improvements")
Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Reviewed-by: Enzo Matsumiya <ematsumiya@suse.de>
Cc: Frank Sorenson <sorenson@redhat.com>
Cc: David Howells <dhowells@redhat.com>
Cc: linux-cifs@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/smb/client/cifsproto.h
fs/smb/client/inode.c
fs/smb/client/misc.c