mirror of https://gitee.com/openkylin/linux.git
cifs: added WARN_ON for all the count decrements
We have a few ref counters srv_count, ses_count and tc_count which we use for ref counting. Added a WARN_ON during the decrement of each of these counters to make sure that they don't go below their minimum values. Signed-off-by: Shyam Prasad N <sprasad@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
63f94e946f
commit
16dd9b8c31
|
@ -1295,6 +1295,9 @@ cifs_put_tcp_session(struct TCP_Server_Info *server, int from_reconnect)
|
|||
return;
|
||||
}
|
||||
|
||||
/* srv_count can never go negative */
|
||||
WARN_ON(server->srv_count < 0);
|
||||
|
||||
put_net(cifs_net_ns(server));
|
||||
|
||||
list_del_init(&server->tcp_ses_list);
|
||||
|
@ -1654,6 +1657,9 @@ void cifs_put_smb_ses(struct cifs_ses *ses)
|
|||
}
|
||||
spin_unlock(&cifs_tcp_ses_lock);
|
||||
|
||||
/* ses_count can never go negative */
|
||||
WARN_ON(ses->ses_count < 0);
|
||||
|
||||
spin_lock(&GlobalMid_Lock);
|
||||
if (ses->status == CifsGood)
|
||||
ses->status = CifsExiting;
|
||||
|
@ -2021,6 +2027,9 @@ cifs_put_tcon(struct cifs_tcon *tcon)
|
|||
return;
|
||||
}
|
||||
|
||||
/* tc_count can never go negative */
|
||||
WARN_ON(tcon->tc_count < 0);
|
||||
|
||||
if (tcon->use_witness) {
|
||||
int rc;
|
||||
|
||||
|
|
|
@ -2910,6 +2910,8 @@ smb2_get_dfs_refer(const unsigned int xid, struct cifs_ses *ses,
|
|||
/* ipc tcons are not refcounted */
|
||||
spin_lock(&cifs_tcp_ses_lock);
|
||||
tcon->tc_count--;
|
||||
/* tc_count can never go negative */
|
||||
WARN_ON(tcon->tc_count < 0);
|
||||
spin_unlock(&cifs_tcp_ses_lock);
|
||||
}
|
||||
kfree(utf16_path);
|
||||
|
|
Loading…
Reference in New Issue