From: Steve French Date: Sun, 7 Apr 2024 04:16:08 +0000 (-0500) Subject: smb3: fix Open files on server counter going negative X-Git-Tag: v6.6.28~121 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=05eedb5abc077c09e435dd607d9df87d1856e084;p=thirdparty%2Fkernel%2Fstable.git smb3: fix Open files on server counter going negative commit 28e0947651ce6a2200b9a7eceb93282e97d7e51a upstream. We were decrementing the count of open files on server twice for the case where we were closing cached directories. Fixes: 8e843bf38f7b ("cifs: return a single-use cfid if we did not get a lease") Cc: stable@vger.kernel.org Acked-by: Bharath SM Signed-off-by: Steve French Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/smb/client/cached_dir.c b/fs/smb/client/cached_dir.c index 1a9e705d65002..567f718362c52 100644 --- a/fs/smb/client/cached_dir.c +++ b/fs/smb/client/cached_dir.c @@ -417,8 +417,8 @@ smb2_close_cached_fid(struct kref *ref) if (cfid->is_open) { rc = SMB2_close(0, cfid->tcon, cfid->fid.persistent_fid, cfid->fid.volatile_fid); - if (rc != -EBUSY && rc != -EAGAIN) - atomic_dec(&cfid->tcon->num_remote_opens); + if (rc) /* should we retry on -EBUSY or -EAGAIN? */ + cifs_dbg(VFS, "close cached dir rc %d\n", rc); } free_cached_dir(cfid);