diff options
Diffstat (limited to 'fs/cifs/transport.c')
-rw-r--r-- | fs/cifs/transport.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c index 3612d6c0a0bb..000ac509c98a 100644 --- a/fs/cifs/transport.c +++ b/fs/cifs/transport.c | |||
@@ -142,6 +142,24 @@ void DeleteOplockQEntry(struct oplock_q_entry *oplockEntry) | |||
142 | kmem_cache_free(cifs_oplock_cachep, oplockEntry); | 142 | kmem_cache_free(cifs_oplock_cachep, oplockEntry); |
143 | } | 143 | } |
144 | 144 | ||
145 | |||
146 | void DeleteTconOplockQEntries(struct cifsTconInfo *tcon) | ||
147 | { | ||
148 | struct oplock_q_entry *temp; | ||
149 | |||
150 | if (tcon == NULL) | ||
151 | return; | ||
152 | |||
153 | spin_lock(&GlobalMid_Lock); | ||
154 | list_for_each_entry(temp, &GlobalOplock_Q, qhead) { | ||
155 | if ((temp->tcon) && (temp->tcon == tcon)) { | ||
156 | list_del(&temp->qhead); | ||
157 | kmem_cache_free(cifs_oplock_cachep, temp); | ||
158 | } | ||
159 | } | ||
160 | spin_unlock(&GlobalMid_Lock); | ||
161 | } | ||
162 | |||
145 | int | 163 | int |
146 | smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer, | 164 | smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer, |
147 | unsigned int smb_buf_length, struct sockaddr *sin) | 165 | unsigned int smb_buf_length, struct sockaddr *sin) |