All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] nbd: improve timeout handling and a fix
@ 2020-09-21 10:57 Hou Pu
  2020-09-21 10:57 ` [PATCH 1/3] nbd: return -ETIMEDOUT when NBD_DO_IT ioctl returns Hou Pu
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Hou Pu @ 2020-09-21 10:57 UTC (permalink / raw)
  To: josef, axboe; +Cc: mchristi, linux-block, nbd, Hou Pu

Patch #1 is a fix. Patch #2 and #3 are trying to improve io timeout
handling.

Thanks,
Hou

Hou Pu (3):
  nbd: return -ETIMEDOUT when NBD_DO_IT ioctl returns
  nbd: unify behavior in timeout no matter how many sockets is
    configured
  nbd: introduce a client flag to do zero timeout handling

 drivers/block/nbd.c      | 36 +++++++++++++++++++++++++++++++-----
 include/uapi/linux/nbd.h |  4 ++++
 2 files changed, 35 insertions(+), 5 deletions(-)

-- 
2.11.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] nbd: return -ETIMEDOUT when NBD_DO_IT ioctl returns
  2020-09-21 10:57 [PATCH 0/3] nbd: improve timeout handling and a fix Hou Pu
@ 2020-09-21 10:57 ` Hou Pu
  2020-09-21 18:04   ` Josef Bacik
  2020-09-21 10:57 ` [PATCH 2/3] nbd: unify behavior in timeout no matter how many sockets is configured Hou Pu
  2020-09-21 10:57 ` [PATCH 3/3] nbd: introduce a client flag to do zero timeout handling Hou Pu
  2 siblings, 1 reply; 9+ messages in thread
From: Hou Pu @ 2020-09-21 10:57 UTC (permalink / raw)
  To: josef, axboe; +Cc: mchristi, linux-block, nbd, Hou Pu

We used to return -ETIMEDOUT if io timeout happened. But since
commit d970958b2d24 ("nbd: enable replace socket if only one
connection is configured"), user space would not get -ETIMEDOUT.
This commit fixes this. Only return -ETIMEDOUT if only one socket
is configured by ioctl and the user specified a non-zero timeout
value.

Signed-off-by: Hou Pu <houpu@bytedance.com>
---
 drivers/block/nbd.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index ce7e9f223b20..538e9dcf5bf2 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -395,6 +395,11 @@ static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
 	}
 	config = nbd->config;
 
+	if (!test_bit(NBD_RT_BOUND, &config->runtime_flags) &&
+	    config->num_connections == 1 &&
+	    nbd->tag_set.timeout)
+		goto error_out;
+
 	if (config->num_connections > 1 ||
 	    (config->num_connections == 1 && nbd->tag_set.timeout)) {
 		dev_err_ratelimited(nbd_to_dev(nbd),
@@ -455,6 +460,7 @@ static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
 		return BLK_EH_RESET_TIMER;
 	}
 
+error_out:
 	dev_err_ratelimited(nbd_to_dev(nbd), "Connection timed out\n");
 	set_bit(NBD_RT_TIMEDOUT, &config->runtime_flags);
 	cmd->status = BLK_STS_IOERR;
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/3] nbd: unify behavior in timeout no matter how many sockets is configured
  2020-09-21 10:57 [PATCH 0/3] nbd: improve timeout handling and a fix Hou Pu
  2020-09-21 10:57 ` [PATCH 1/3] nbd: return -ETIMEDOUT when NBD_DO_IT ioctl returns Hou Pu
@ 2020-09-21 10:57 ` Hou Pu
  2020-09-21 18:01   ` Josef Bacik
  2020-09-21 10:57 ` [PATCH 3/3] nbd: introduce a client flag to do zero timeout handling Hou Pu
  2 siblings, 1 reply; 9+ messages in thread
From: Hou Pu @ 2020-09-21 10:57 UTC (permalink / raw)
  To: josef, axboe; +Cc: mchristi, linux-block, nbd, Hou Pu

When an nbd device is configured with multiple sockets, the request
is requeued to an active socket in xmit_timeout, the original socket
is closed if not.

Some time, the backend nbd server hang, thus all sockets will be
dropped and the nbd device is not usable. It would be better to have an
option to wait for more time (just reset timer in nbd_xmit_timeout).
Like what we do if we only have one socket. This patch allows it.

Signed-off-by: Hou Pu <houpu@bytedance.com>
---
 drivers/block/nbd.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 538e9dcf5bf2..4c0bbb981cbc 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -400,8 +400,7 @@ static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
 	    nbd->tag_set.timeout)
 		goto error_out;
 
-	if (config->num_connections > 1 ||
-	    (config->num_connections == 1 && nbd->tag_set.timeout)) {
+	if (nbd->tag_set.timeout) {
 		dev_err_ratelimited(nbd_to_dev(nbd),
 				    "Connection timed out, retrying (%d/%d alive)\n",
 				    atomic_read(&config->live_connections),
@@ -432,9 +431,7 @@ static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
 			nbd_config_put(nbd);
 			return BLK_EH_DONE;
 		}
-	}
-
-	if (!nbd->tag_set.timeout) {
+	} else {
 		/*
 		 * Userspace sets timeout=0 to disable socket disconnection,
 		 * so just warn and reset the timer.
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/3] nbd: introduce a client flag to do zero timeout handling
  2020-09-21 10:57 [PATCH 0/3] nbd: improve timeout handling and a fix Hou Pu
  2020-09-21 10:57 ` [PATCH 1/3] nbd: return -ETIMEDOUT when NBD_DO_IT ioctl returns Hou Pu
  2020-09-21 10:57 ` [PATCH 2/3] nbd: unify behavior in timeout no matter how many sockets is configured Hou Pu
@ 2020-09-21 10:57 ` Hou Pu
  2020-09-21 18:03   ` Josef Bacik
  2 siblings, 1 reply; 9+ messages in thread
From: Hou Pu @ 2020-09-21 10:57 UTC (permalink / raw)
  To: josef, axboe; +Cc: mchristi, linux-block, nbd, Hou Pu

Introduce a dedicated client flag NBD_RT_WAIT_ON_TIMEOUT to reset
timer in nbd_xmit_timer instead of depending on tag_set.timeout == 0.
So that the timeout value could be configured by the user to
whatever they like instead of the default 30s. A smaller timeout
value allow us to detect if a new socket is reconfigured in a
shorter time. Thus the io could be requeued more quickly.

The tag_set.timeout == 0 setting still works like before.

Signed-off-by: Hou Pu <houpu@bytedance.com>
---
 drivers/block/nbd.c      | 25 ++++++++++++++++++++++++-
 include/uapi/linux/nbd.h |  4 ++++
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 4c0bbb981cbc..1d7a9de7bdcc 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -80,6 +80,7 @@ struct link_dead_args {
 #define NBD_RT_BOUND			5
 #define NBD_RT_DESTROY_ON_DISCONNECT	6
 #define NBD_RT_DISCONNECT_ON_CLOSE	7
+#define NBD_RT_WAIT_ON_TIMEOUT		8
 
 #define NBD_DESTROY_ON_DISCONNECT	0
 #define NBD_DISCONNECT_REQUESTED	1
@@ -378,6 +379,16 @@ static u32 req_to_nbd_cmd_type(struct request *req)
 	}
 }
 
+static inline bool wait_on_timeout(struct nbd_device *nbd,
+				   struct nbd_config *config)
+{
+	if (test_bit(NBD_RT_WAIT_ON_TIMEOUT, &config->runtime_flags) ||
+	    nbd->tag_set.timeout == 0)
+		return true;
+	else
+		return false;
+}
+
 static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
 						 bool reserved)
 {
@@ -400,7 +411,7 @@ static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
 	    nbd->tag_set.timeout)
 		goto error_out;
 
-	if (nbd->tag_set.timeout) {
+	if (!wait_on_timeout(nbd, config)) {
 		dev_err_ratelimited(nbd_to_dev(nbd),
 				    "Connection timed out, retrying (%d/%d alive)\n",
 				    atomic_read(&config->live_connections),
@@ -1953,6 +1964,10 @@ static int nbd_genl_connect(struct sk_buff *skb, struct genl_info *info)
 			set_bit(NBD_RT_DISCONNECT_ON_CLOSE,
 				&config->runtime_flags);
 		}
+		if (flags & NBD_CFLAG_WAIT_ON_TIMEOUT) {
+			set_bit(NBD_RT_WAIT_ON_TIMEOUT,
+				&config->runtime_flags);
+		}
 	}
 
 	if (info->attrs[NBD_ATTR_SOCKETS]) {
@@ -2136,6 +2151,14 @@ static int nbd_genl_reconfigure(struct sk_buff *skb, struct genl_info *info)
 			clear_bit(NBD_RT_DISCONNECT_ON_CLOSE,
 					&config->runtime_flags);
 		}
+		if (flags & NBD_CFLAG_WAIT_ON_TIMEOUT) {
+			set_bit(NBD_RT_WAIT_ON_TIMEOUT,
+				&config->runtime_flags);
+		} else {
+			clear_bit(NBD_RT_WAIT_ON_TIMEOUT,
+				  &config->runtime_flags);
+		}
+
 	}
 
 	if (info->attrs[NBD_ATTR_SOCKETS]) {
diff --git a/include/uapi/linux/nbd.h b/include/uapi/linux/nbd.h
index 20d6cc91435d..cc3abfb92de5 100644
--- a/include/uapi/linux/nbd.h
+++ b/include/uapi/linux/nbd.h
@@ -56,6 +56,10 @@ enum {
 #define NBD_CFLAG_DISCONNECT_ON_CLOSE (1 << 1) /* disconnect the nbd device on
 						*  close by last opener.
 						*/
+#define NBD_CFLAG_WAIT_ON_TIMEOUT (1 << 2) /* do not fallback to other sockets
+					    * in io timeout, instead just reset
+					    * timer and wait.
+					    */
 
 /* userspace doesn't need the nbd_device structure */
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] nbd: unify behavior in timeout no matter how many sockets is configured
  2020-09-21 10:57 ` [PATCH 2/3] nbd: unify behavior in timeout no matter how many sockets is configured Hou Pu
@ 2020-09-21 18:01   ` Josef Bacik
  2020-09-22  3:14     ` Hou Pu
  0 siblings, 1 reply; 9+ messages in thread
From: Josef Bacik @ 2020-09-21 18:01 UTC (permalink / raw)
  To: Hou Pu, axboe; +Cc: mchristi, linux-block, nbd

On 9/21/20 6:57 AM, Hou Pu wrote:
> When an nbd device is configured with multiple sockets, the request
> is requeued to an active socket in xmit_timeout, the original socket
> is closed if not.
> 
> Some time, the backend nbd server hang, thus all sockets will be
> dropped and the nbd device is not usable. It would be better to have an
> option to wait for more time (just reset timer in nbd_xmit_timeout).
> Like what we do if we only have one socket. This patch allows it.
> 
> Signed-off-by: Hou Pu <houpu@bytedance.com>
> ---
>   drivers/block/nbd.c | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
> index 538e9dcf5bf2..4c0bbb981cbc 100644
> --- a/drivers/block/nbd.c
> +++ b/drivers/block/nbd.c
> @@ -400,8 +400,7 @@ static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
>   	    nbd->tag_set.timeout)
>   		goto error_out;
>   
> -	if (config->num_connections > 1 ||
> -	    (config->num_connections == 1 && nbd->tag_set.timeout)) {
> +	if (nbd->tag_set.timeout) {

So now if you don't set a .timeout and have num_connections > 1 we don't close 
the socket, so this won't work.  Thanks,

Josef

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] nbd: introduce a client flag to do zero timeout handling
  2020-09-21 10:57 ` [PATCH 3/3] nbd: introduce a client flag to do zero timeout handling Hou Pu
@ 2020-09-21 18:03   ` Josef Bacik
  2020-09-22  3:16     ` Hou Pu
  0 siblings, 1 reply; 9+ messages in thread
From: Josef Bacik @ 2020-09-21 18:03 UTC (permalink / raw)
  To: Hou Pu, axboe; +Cc: mchristi, linux-block, nbd

On 9/21/20 6:57 AM, Hou Pu wrote:
> Introduce a dedicated client flag NBD_RT_WAIT_ON_TIMEOUT to reset
> timer in nbd_xmit_timer instead of depending on tag_set.timeout == 0.
> So that the timeout value could be configured by the user to
> whatever they like instead of the default 30s. A smaller timeout
> value allow us to detect if a new socket is reconfigured in a
> shorter time. Thus the io could be requeued more quickly.
> 
> The tag_set.timeout == 0 setting still works like before.
> 
> Signed-off-by: Hou Pu <houpu@bytedance.com>

I like this idea in general, just a few comments below.

> ---
>   drivers/block/nbd.c      | 25 ++++++++++++++++++++++++-
>   include/uapi/linux/nbd.h |  4 ++++
>   2 files changed, 28 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
> index 4c0bbb981cbc..1d7a9de7bdcc 100644
> --- a/drivers/block/nbd.c
> +++ b/drivers/block/nbd.c
> @@ -80,6 +80,7 @@ struct link_dead_args {
>   #define NBD_RT_BOUND			5
>   #define NBD_RT_DESTROY_ON_DISCONNECT	6
>   #define NBD_RT_DISCONNECT_ON_CLOSE	7
> +#define NBD_RT_WAIT_ON_TIMEOUT		8
>   
>   #define NBD_DESTROY_ON_DISCONNECT	0
>   #define NBD_DISCONNECT_REQUESTED	1
> @@ -378,6 +379,16 @@ static u32 req_to_nbd_cmd_type(struct request *req)
>   	}
>   }
>   
> +static inline bool wait_on_timeout(struct nbd_device *nbd,
> +				   struct nbd_config *config)
> +{
> +	if (test_bit(NBD_RT_WAIT_ON_TIMEOUT, &config->runtime_flags) ||
> +	    nbd->tag_set.timeout == 0)
> +		return true;
> +	else
> +		return false;
> +}
> +

This obviously needs to be updated to match my comments from the previous patch.

>   static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
>   						 bool reserved)
>   {
> @@ -400,7 +411,7 @@ static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
>   	    nbd->tag_set.timeout)
>   		goto error_out;
>   
> -	if (nbd->tag_set.timeout) {
> +	if (!wait_on_timeout(nbd, config)) {
>   		dev_err_ratelimited(nbd_to_dev(nbd),
>   				    "Connection timed out, retrying (%d/%d alive)\n",
>   				    atomic_read(&config->live_connections),
> @@ -1953,6 +1964,10 @@ static int nbd_genl_connect(struct sk_buff *skb, struct genl_info *info)
>   			set_bit(NBD_RT_DISCONNECT_ON_CLOSE,
>   				&config->runtime_flags);
>   		}
> +		if (flags & NBD_CFLAG_WAIT_ON_TIMEOUT) {
> +			set_bit(NBD_RT_WAIT_ON_TIMEOUT,
> +				&config->runtime_flags);
> +		}

Documentation/process/coding-style.rst

"Do not unnecessarily use braces where a single statement will do."

same goes for below.  Thanks,

Josef

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] nbd: return -ETIMEDOUT when NBD_DO_IT ioctl returns
  2020-09-21 10:57 ` [PATCH 1/3] nbd: return -ETIMEDOUT when NBD_DO_IT ioctl returns Hou Pu
@ 2020-09-21 18:04   ` Josef Bacik
  0 siblings, 0 replies; 9+ messages in thread
From: Josef Bacik @ 2020-09-21 18:04 UTC (permalink / raw)
  To: Hou Pu, axboe; +Cc: mchristi, linux-block, nbd

On 9/21/20 6:57 AM, Hou Pu wrote:
> We used to return -ETIMEDOUT if io timeout happened. But since
> commit d970958b2d24 ("nbd: enable replace socket if only one
> connection is configured"), user space would not get -ETIMEDOUT.
> This commit fixes this. Only return -ETIMEDOUT if only one socket
> is configured by ioctl and the user specified a non-zero timeout
> value.
> 
> Signed-off-by: Hou Pu <houpu@bytedance.com>

This is fine, you can add

Reviewed-by: Josef Bacik <josef@toxicpanda.com>

to this one, thanks,

Josef

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] nbd: unify behavior in timeout no matter how many sockets is configured
  2020-09-21 18:01   ` Josef Bacik
@ 2020-09-22  3:14     ` Hou Pu
  0 siblings, 0 replies; 9+ messages in thread
From: Hou Pu @ 2020-09-22  3:14 UTC (permalink / raw)
  To: Josef Bacik, axboe; +Cc: mchristi, linux-block, nbd



On 2020/9/22 2:01 AM, Josef Bacik wrote:
> On 9/21/20 6:57 AM, Hou Pu wrote:
>> When an nbd device is configured with multiple sockets, the request
>> is requeued to an active socket in xmit_timeout, the original socket
>> is closed if not.
>>
>> Some time, the backend nbd server hang, thus all sockets will be
>> dropped and the nbd device is not usable. It would be better to have an
>> option to wait for more time (just reset timer in nbd_xmit_timeout).
>> Like what we do if we only have one socket. This patch allows it.
>>
>> Signed-off-by: Hou Pu <houpu@bytedance.com>
>> ---
>>   drivers/block/nbd.c | 7 ++-----
>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
>> index 538e9dcf5bf2..4c0bbb981cbc 100644
>> --- a/drivers/block/nbd.c
>> +++ b/drivers/block/nbd.c
>> @@ -400,8 +400,7 @@ static enum blk_eh_timer_return 
>> nbd_xmit_timeout(struct request *req,
>>           nbd->tag_set.timeout)
>>           goto error_out;
>> -    if (config->num_connections > 1 ||
>> -        (config->num_connections == 1 && nbd->tag_set.timeout)) {
>> +    if (nbd->tag_set.timeout) {
> 
> So now if you don't set a .timeout and have num_connections > 1 we don't 
> close the socket, so this won't work.  Thanks,
> 
> Josef

OK, will keep the behavior same as before when we don't set a .timeout
and num_connections > 1. And there is not need to keep this patch.
Will remove it in v2.

Thanks,
Hou

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] nbd: introduce a client flag to do zero timeout handling
  2020-09-21 18:03   ` Josef Bacik
@ 2020-09-22  3:16     ` Hou Pu
  0 siblings, 0 replies; 9+ messages in thread
From: Hou Pu @ 2020-09-22  3:16 UTC (permalink / raw)
  To: Josef Bacik, axboe; +Cc: mchristi, linux-block, nbd



On 2020/9/22 2:03 AM, Josef Bacik wrote:
> On 9/21/20 6:57 AM, Hou Pu wrote:
>> Introduce a dedicated client flag NBD_RT_WAIT_ON_TIMEOUT to reset
>> timer in nbd_xmit_timer instead of depending on tag_set.timeout == 0.
>> So that the timeout value could be configured by the user to
>> whatever they like instead of the default 30s. A smaller timeout
>> value allow us to detect if a new socket is reconfigured in a
>> shorter time. Thus the io could be requeued more quickly.
>>
>> The tag_set.timeout == 0 setting still works like before.
>>
>> Signed-off-by: Hou Pu <houpu@bytedance.com>
> 
> I like this idea in general, just a few comments below.

Thanks,
Hou

> 
>> ---
>>   drivers/block/nbd.c      | 25 ++++++++++++++++++++++++-
>>   include/uapi/linux/nbd.h |  4 ++++
>>   2 files changed, 28 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
>> index 4c0bbb981cbc..1d7a9de7bdcc 100644
>> --- a/drivers/block/nbd.c
>> +++ b/drivers/block/nbd.c
>> @@ -80,6 +80,7 @@ struct link_dead_args {
>>   #define NBD_RT_BOUND            5
>>   #define NBD_RT_DESTROY_ON_DISCONNECT    6
>>   #define NBD_RT_DISCONNECT_ON_CLOSE    7
>> +#define NBD_RT_WAIT_ON_TIMEOUT        8
>>   #define NBD_DESTROY_ON_DISCONNECT    0
>>   #define NBD_DISCONNECT_REQUESTED    1
>> @@ -378,6 +379,16 @@ static u32 req_to_nbd_cmd_type(struct request *req)
>>       }
>>   }
>> +static inline bool wait_on_timeout(struct nbd_device *nbd,
>> +                   struct nbd_config *config)
>> +{
>> +    if (test_bit(NBD_RT_WAIT_ON_TIMEOUT, &config->runtime_flags) ||
>> +        nbd->tag_set.timeout == 0)
>> +        return true;
>> +    else
>> +        return false;
>> +}
>> +
> 
> This obviously needs to be updated to match my comments from the 
> previous patch.

Thanks. Please see v2 latter.

> 
>>   static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
>>                            bool reserved)
>>   {
>> @@ -400,7 +411,7 @@ static enum blk_eh_timer_return 
>> nbd_xmit_timeout(struct request *req,
>>           nbd->tag_set.timeout)
>>           goto error_out;
>> -    if (nbd->tag_set.timeout) {
>> +    if (!wait_on_timeout(nbd, config)) {
>>           dev_err_ratelimited(nbd_to_dev(nbd),
>>                       "Connection timed out, retrying (%d/%d alive)\n",
>>                       atomic_read(&config->live_connections),
>> @@ -1953,6 +1964,10 @@ static int nbd_genl_connect(struct sk_buff 
>> *skb, struct genl_info *info)
>>               set_bit(NBD_RT_DISCONNECT_ON_CLOSE,
>>                   &config->runtime_flags);
>>           }
>> +        if (flags & NBD_CFLAG_WAIT_ON_TIMEOUT) {
>> +            set_bit(NBD_RT_WAIT_ON_TIMEOUT,
>> +                &config->runtime_flags);
>> +        }
> 
> Documentation/process/coding-style.rst
> 
> "Do not unnecessarily use braces where a single statement will do."
> 
> same goes for below.  Thanks,
> 
> Josef

Thanks. Will fix this in v2.


Thanks,
Hou


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-09-22  3:16 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-21 10:57 [PATCH 0/3] nbd: improve timeout handling and a fix Hou Pu
2020-09-21 10:57 ` [PATCH 1/3] nbd: return -ETIMEDOUT when NBD_DO_IT ioctl returns Hou Pu
2020-09-21 18:04   ` Josef Bacik
2020-09-21 10:57 ` [PATCH 2/3] nbd: unify behavior in timeout no matter how many sockets is configured Hou Pu
2020-09-21 18:01   ` Josef Bacik
2020-09-22  3:14     ` Hou Pu
2020-09-21 10:57 ` [PATCH 3/3] nbd: introduce a client flag to do zero timeout handling Hou Pu
2020-09-21 18:03   ` Josef Bacik
2020-09-22  3:16     ` Hou Pu

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.