commit 71f15c90e785d1de4bcd65a279e7256684c25c0d upstream smb: client: retry compound request without reusing lease requesting backport to 6.8.x, 6.6.x, 6.5.x and 6.1.x
This patch fixes a potential regression (eg. failure of xfstests generic 002 and 013) that is introduced by patch 1 of this patch series: https://lore.kernel.org/stable/CAFTVevWEnEDAQbw59N-R03ppFgqa3qwTySfn61-+T4Vo... commit 2c7d399e551ccfd87bcae4ef5573097f3313d779 (smb: client: reuse file lease key in compound operations)
As per MS-SMB2, lease keys are associated with the filename. The smb client maintains lease keys with the inode. Consequently, if a file has hardlinks, it is possible that the lease for a file be wrongly reused for an operation on its hardlink or vice versa. In cases such as this, the rename, delete and set_path_size compound operations that reuse the lease key (courtesy of patch 1) fail with STATUS_INVALID_PARAMETER. This behaviour (and the fact that lease keys are being associated with the inode and not the filename) was being concealed by the lease breaks issued after each of the mentioned compound operations (even on the same client) since the lease was never being reused. Hence, the fix becomes important.
Thanks Meetakshi
linux-stable-mirror@lists.linaro.org