[CIFS] WARN_ON_ONCE if kernel_sendmsg() returns -ENOSPC
kernel_sendmsg() is less likely to return -ENOSPC and it might be a bug to do so. However, in the past there might have been cases where a -ENOSPC was returned from a low level driver. Add a WARN_ON_ONCE() to ensure that it is safe to assume that -ENOSPC is no longer returned. This -ENOSPC specific handling will be removed once we are sure it is no longer returned. Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Suresh Jayaraman <sjayaraman@suse.com> Signed-off-by: Steve French <smfrench@gmail.com>
This commit is contained in:
parent
612a9aab56
commit
b7a10626c8
@ -183,6 +183,12 @@ smb_send_kvec(struct TCP_Server_Info *server, struct kvec *iov, size_t n_vec,
|
|||||||
rc = kernel_sendmsg(ssocket, &smb_msg, &iov[first_vec],
|
rc = kernel_sendmsg(ssocket, &smb_msg, &iov[first_vec],
|
||||||
n_vec - first_vec, remaining);
|
n_vec - first_vec, remaining);
|
||||||
if (rc == -ENOSPC || rc == -EAGAIN) {
|
if (rc == -ENOSPC || rc == -EAGAIN) {
|
||||||
|
/*
|
||||||
|
* Catch if a low level driver returns -ENOSPC. This
|
||||||
|
* WARN_ON will be removed by 3.10 if no one reports
|
||||||
|
* seeing this.
|
||||||
|
*/
|
||||||
|
WARN_ON_ONCE(rc == -ENOSPC);
|
||||||
i++;
|
i++;
|
||||||
if (i >= 14 || (!server->noblocksnd && (i > 2))) {
|
if (i >= 14 || (!server->noblocksnd && (i > 2))) {
|
||||||
cERROR(1, "sends on sock %p stuck for 15 "
|
cERROR(1, "sends on sock %p stuck for 15 "
|
||||||
|
Loading…
Reference in New Issue
Block a user