From: Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
To: Pavel Shilovsky <piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 05/11] CIFS: Make wait_for_free_request interruptible
Date: Wed, 22 Feb 2012 14:15:34 -0500 [thread overview]
Message-ID: <20120222141534.5512c3bf@samba.org> (raw)
In-Reply-To: <1329895984-9251-6-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
On Wed, 22 Feb 2012 10:32:58 +0300
Pavel Shilovsky <piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org> wrote:
> to let us interrupt the proccess if the session went down and echo
> is disabled.
>
> Signed-off-by: Pavel Shilovsky <piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
> ---
> fs/cifs/transport.c | 7 ++++++-
> 1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
> index fa93720..938d20b 100644
> --- a/fs/cifs/transport.c
> +++ b/fs/cifs/transport.c
> @@ -257,6 +257,8 @@ smb_send(struct TCP_Server_Info *server, struct smb_hdr *smb_buffer,
> static int
> wait_for_free_request(struct TCP_Server_Info *server, const int long_op)
> {
> + int rc;
> +
> spin_lock(&server->req_lock);
>
> if (long_op == CIFS_ASYNC_OP) {
> @@ -271,8 +273,11 @@ wait_for_free_request(struct TCP_Server_Info *server, const int long_op)
> if (server->credits <= 0) {
> spin_unlock(&server->req_lock);
> cifs_num_waiters_inc(server);
> - wait_event(server->request_q, get_credits(server) > 0);
> + rc = wait_event_interruptible(server->request_q,
> + get_credits(server) > 0);
> cifs_num_waiters_dec(server);
> + if (rc)
> + return rc;
> spin_lock(&server->req_lock);
> } else {
> if (server->tcpStatus == CifsExiting) {
In general, I think making this interruptible is a good idea. The
problem here though is that you're going to end up interrupting this on
any signal. That includes stuff like SIGCHLD -- you don't necessarily
want to interrupt this because the process forked off a child earlier
and then that child exited...
It's probably simpler to just make this a TASK_KILLABLE sleep for that
reason, rather than trying to handle different signals differently.
--
Jeff Layton <jlayton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
next prev parent reply other threads:[~2012-02-22 19:15 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-22 7:32 [PATCH 0/11] Improve transport code for future SMB2 usage Pavel Shilovsky
[not found] ` <1329895984-9251-1-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-22 7:32 ` [PATCH 01/11] CIFS: Simplify inFlight logic Pavel Shilovsky
[not found] ` <1329895984-9251-2-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-27 22:53 ` Steve French
[not found] ` <CAH2r5msNLEF9qVvKsTVTUnPyUjk+7iYVJTxZgd_uuXLAE0iyRg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 9:38 ` Pavel Shilovsky
[not found] ` <CAKywueQNFbwDqwr7adWsUZmaYX28tz3kYnL1=4itBHAFV1aeaA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 11:31 ` Jeff Layton
[not found] ` <20120228063120.76265cd9-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-02-28 11:39 ` Pavel Shilovsky
2012-03-03 9:33 ` Pavel Shilovsky
2012-02-22 7:32 ` [PATCH 02/11] CIFS: Introduce credit-based flow control Pavel Shilovsky
2012-02-22 7:32 ` [PATCH 03/11] CIFS: Count blocking lock command Pavel Shilovsky
[not found] ` <1329895984-9251-4-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-27 23:23 ` Steve French
[not found] ` <CAH2r5mujUbTEe0xtk_sfM1xokCk7FnX=6JKO539ut88Z+RS7wA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 9:40 ` Pavel Shilovsky
2012-02-22 7:32 ` [PATCH 04/11] CIFS: Delete echo_retries module parm Pavel Shilovsky
[not found] ` <1329895984-9251-5-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-22 16:23 ` Jeff Layton
[not found] ` <20120222112323.3d1afe4b-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-02-23 6:16 ` Pavel Shilovsky
2012-02-27 23:39 ` Steve French
2012-02-22 7:32 ` [PATCH 05/11] CIFS: Make wait_for_free_request interruptible Pavel Shilovsky
[not found] ` <1329895984-9251-6-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-22 19:15 ` Jeff Layton [this message]
[not found] ` <20120222141534.5512c3bf-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-02-23 6:18 ` Pavel Shilovsky
[not found] ` <CAKywueR7tggS99buChze5WHFY2=daoHUkO41F+WTNfqRT64Syw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-27 23:54 ` Steve French
2012-02-22 7:32 ` [PATCH 06/11] CIFS: Respect MaxMpxCount field Pavel Shilovsky
[not found] ` <1329895984-9251-7-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-28 0:01 ` Steve French
[not found] ` <CAH2r5mvVToaHozN3=YgCCCWFFnjE9AP5xX_BF2JdxDj_JvKsbQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 16:43 ` Jeff Layton
[not found] ` <20120228114341.1629ed85-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-02-28 17:42 ` Steve French
[not found] ` <CAH2r5mvFyw8Cn8nXN9ZBZogBGVr5L5T9aX7Zs8DOiZgDUqGp1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 19:47 ` Jeff Layton
[not found] ` <20120228144736.18124fc3-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-02-28 20:03 ` Steve French
[not found] ` <CAH2r5mvJE+ACNVuv+HEQMuwvaMTzfOb7Msk4U1ZVnZ046AEi1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 20:53 ` Pavel Shilovsky
[not found] ` <CAKywueSxe_wZwudx3UK14C94o53zjghsTJJSah=CQSqy0uhZRQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 21:18 ` Steve French
[not found] ` <CAH2r5mvFiwpVwcBgfuXvEGC1_8snLMAsp4fRVEDMqTWXDJdu9w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-01 18:37 ` Jeff Layton
[not found] ` <20120301133747.5fc891b5-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-01 18:48 ` Jeremy Allison
2012-03-01 19:12 ` Jeff Layton
2012-03-01 19:18 ` Christopher R. Hertel
[not found] ` <4F4FCB69.6060705-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-02 15:45 ` Jeff Layton
2012-03-03 8:35 ` Pavel Shilovsky
[not found] ` <CAKywueRwzdak2LfpfVkiX2ue0A-0a15J9kO8kgUYseRPXM8Tfw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-03 12:09 ` Jeff Layton
[not found] ` <20120303070921.5ce2bb10-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-03-04 3:14 ` Steve French
[not found] ` <CAH2r5mvGjzS73bhgG54Yzcqui9qxfv7e3yrxWZX+weSUQB4cHA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-04 11:30 ` Jeff Layton
2012-03-09 12:39 ` Jeff Layton
[not found] ` <20120309073930.3a79fa10-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-03-09 16:45 ` Steve French
[not found] ` <CAH2r5mvzgnTcyhL-Rip9yHUEMsLOCFhfAoNdRyVqhNFin_A6mw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-09 19:04 ` Christopher R. Hertel
[not found] ` <4F5A543D.2040808-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-09 20:14 ` Jeremy Allison
2012-03-09 20:16 ` Steve French
[not found] ` <CAH2r5mvMWOVrKXYJjcKYwUR+yaJpzYysDoc+TvPmfN+RDHAQ5g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-09 21:07 ` Christopher R. Hertel
[not found] ` <4F5A712C.8030500-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-12 15:09 ` Jeff Layton
2012-03-09 21:05 ` Christopher R. Hertel
[not found] ` <4F5A70A3.906-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-09 21:14 ` Jeremy Allison
2012-02-22 7:33 ` [PATCH 07/11] CIFS: Separate protocol-specific code from transport routines Pavel Shilovsky
[not found] ` <1329895984-9251-8-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-28 0:03 ` Steve French
2012-02-22 7:33 ` [PATCH 08/11] CIFS: Separate protocol-specific code from demultiplex code Pavel Shilovsky
2012-02-22 7:33 ` [PATCH 09/11] CIFS: Separate protocol-specific code from cifs_readv_receive code Pavel Shilovsky
2012-02-22 7:33 ` [PATCH 10/11] CIFS: Expand CurrentMid field Pavel Shilovsky
2012-02-22 7:33 ` [PATCH 11/11] CIFS: Change mid_q_entry structure fields Pavel Shilovsky
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=20120222141534.5512c3bf@samba.org \
--to=jlayton-eunubhrolfbytjvyw6ydsg@public.gmane.org \
--cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=piastry-7qunaywFIewox3rIn2DAYQ@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox