Lines Matching defs:credits

33 /* Change credits for different ops and return the total number of credits */
37 server->credits += server->echo_credits + server->oplock_credits;
38 if (server->credits > server->max_credits)
39 server->credits = server->max_credits;
41 switch (server->credits) {
63 server->credits -= server->echo_credits + server->oplock_credits;
64 return server->credits + server->echo_credits + server->oplock_credits;
69 const struct cifs_credits *credits, const int optype)
73 unsigned int add = credits->value;
74 unsigned int instance = credits->instance;
81 /* eg found case where write overlapping reconnect messed up credits */
91 *val = 65000; /* Don't get near 64K credits, avoid srv bugs */
92 pr_warn_once("server overflowed SMB3 credits\n");
104 * Sometimes server returns 0 credits on oplock break ack - we need to
105 * rebalance credits in this case.
109 if (server->credits > 1) {
110 server->credits--;
115 /* if now have too many oplock credits, rebalance so don't starve normal ops */
127 cifs_dbg(FYI, "trying to put %d credits from the old server instance %d\n",
134 cifs_dbg(FYI, "Negotiate operation when server credits is non-zero. Optype: %d, server credits: %d, credits added: %d\n",
151 cifs_server_dbg(VFS, "Possible client or server bug - zero credits\n");
160 /* change_conf rebalanced credits for different types */
166 cifs_dbg(FYI, "%s: added %u credits total=%d\n", __func__, add, scredits);
175 server->credits = val;
187 scredits = server->credits;
193 cifs_dbg(FYI, "%s: set %u credits\n", __func__, val);
197 cifs_dbg(FYI, "set credits to 1 due to smb2 reconnect\n");
209 return &server->credits;
221 size_t *num, struct cifs_credits *credits)
238 if (server->credits <= 0) {
242 has_credits(server, &server->credits, 1));
248 scredits = server->credits;
252 credits->value = 0;
253 credits->instance = 0;
257 /* leave some credits for reopen and other ops */
262 credits->value =
264 credits->instance = server->reconnect_instance;
265 server->credits -= credits->value;
272 scredits = server->credits;
277 server->conn_id, server->hostname, scredits, -(credits->value), in_flight);
278 cifs_dbg(FYI, "%s: removed %u credits total=%d\n",
279 __func__, credits->value, scredits);
286 struct cifs_credits *credits,
292 if (!credits->value || credits->value == new_val)
295 if (credits->value < new_val) {
297 server->conn_id, server->hostname, 0, credits->value - new_val, 0);
298 cifs_server_dbg(VFS, "request has less credits (%d) than required (%d)",
299 credits->value, new_val);
306 if (server->reconnect_instance != credits->instance) {
307 scredits = server->credits;
313 credits->value - new_val, in_flight);
314 cifs_server_dbg(VFS, "trying to return %d credits to old session\n",
315 credits->value - new_val);
319 server->credits += credits->value - new_val;
320 scredits = server->credits;
327 credits->value - new_val, in_flight);
328 cifs_dbg(FYI, "%s: adjust added %u credits total=%d\n",
329 __func__, credits->value - new_val, scredits);
331 credits->value = new_val;
2410 * the number of credits and return true. Otherwise - return false.
2423 server->credits += le16_to_cpu(shdr->CreditRequest);
2424 scredits = server->credits;
2432 cifs_dbg(FYI, "%s: status pending add %u credits total=%d\n",
4514 /* set up first two iov to get credits */