From: Suresh Jayaraman <sjayaraman-IBi9RG/b67k@public.gmane.org>
To: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-cifs <linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] cifs: WARN_ON_ONCE if kernel_sendmsg() returns -ENOSPC
Date: Wed, 03 Oct 2012 21:13:25 +0530 [thread overview]
Message-ID: <506C5D1D.7050702@suse.com> (raw)
In-Reply-To: <20121003060410.07c30803-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
On 10/03/2012 03:34 PM, Jeff Layton wrote:
> On Wed, 03 Oct 2012 12:45:36 +0530
> Suresh Jayaraman <sjayaraman-IBi9RG/b67k@public.gmane.org> wrote:
>
>> 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.
>>
>> Also, avoid setting -ENOSPC to -EAGAIN while at it.
>>
>> Cc: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>> Signed-off-by: Suresh Jayaraman <sjayaraman-IBi9RG/b67k@public.gmane.org>
>> ---
>> fs/cifs/transport.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
>> index d9b639b..afe000f 100644
>> --- a/fs/cifs/transport.c
>> +++ b/fs/cifs/transport.c
>> @@ -155,6 +155,10 @@ smb_sendv(struct TCP_Server_Info *server, struct kvec *iov, int n_vec)
>> rc = kernel_sendmsg(ssocket, &smb_msg, &iov[first_vec],
>> n_vec - first_vec, total_len);
>> if ((rc == -ENOSPC) || (rc == -EAGAIN)) {
>> + /*
>> + * Catch if a low level driver returns -ENOSPC.
>> + */
>> + WARN_ON_ONCE(rc == -ENOSPC);
>> i++;
>> /*
>> * If blocking send we try 3 times, since each can block
>> @@ -177,7 +181,6 @@ smb_sendv(struct TCP_Server_Info *server, struct kvec *iov, int n_vec)
>> if ((i >= 14) || (!server->noblocksnd && (i > 2))) {
>> cERROR(1, "sends on sock %p stuck for 15 seconds",
>> ssocket);
>> - rc = -EAGAIN;
>
> Do you really want to remove this reset? This will change the behavior
> if the lower levels do indeed return -ENOSPC. That will now bubble back
> up to the upper levels and it will likely abort the call instead of
> retrying.
Yes, you are correct. I'll remove it.
>
> I think it would be best that we add the WARN_ON_ONCE but not change
> anything else. If no one reports seeing that warning fire for 2 or 3
> releases then we can safely remove the -ENOSPC handling. Maybe shoot
> for that in 3.10 or so?
>
> You may want to add a comment to remind us to revisit that for the 3.10
> cycle.
>
Sure, I'll add that when I respin.
Thanks
Suresh
next prev parent reply other threads:[~2012-10-03 15:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-03 7:15 [PATCH] cifs: WARN_ON_ONCE if kernel_sendmsg() returns -ENOSPC Suresh Jayaraman
[not found] ` <506BE618.7050606-IBi9RG/b67k@public.gmane.org>
2012-10-03 10:04 ` Jeff Layton
[not found] ` <20121003060410.07c30803-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-10-03 15:43 ` Suresh Jayaraman [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-10-03 15:57 Suresh Jayaraman
[not found] ` <506C6058.6060008-IBi9RG/b67k@public.gmane.org>
2012-10-03 16:24 ` Jeff Layton
[not found] ` <20121003122417.51c52f31-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-10-03 19:16 ` Steve French
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=506C5D1D.7050702@suse.com \
--to=sjayaraman-ibi9rg/b67k@public.gmane.org \
--cc=jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.