All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Bunker <brian@purestorage.com>
To: linux-scsi@vger.kernel.org
Subject: Re: Undelivered Mail Returned to Sender
Date: Wed, 8 Jun 2022 08:39:25 -0700	[thread overview]
Message-ID: <CAHZQxyKVo7cTq0gGL0nckO3uGebjoDXrr7_3j-A=tJnNA40CvQ@mail.gmail.com> (raw)
In-Reply-To: <20220608153543.6621CCE36@lindbergh.monkeyblade.net>

> Please explain how th (failing the path after the timeout) will come to
> pass.
>
> AFAICS, this means that commands will first be retried without delay
> from the mid layer (NEEDS_RETRY / maybe_retry logic in Are you relying
> scsi_decide_disposition()), until the retries are exhausted. After
> that, they'll be requeued on the high layer, with a 1s delay and
> retries reloaded. How do we make sure this doesn't go on forever?
>
> Do you rely on alua_rtpg() setting the state to STANDBY and
> alua_prep_fn() subsequently returning an error?
>
> I believe this should at least be explained more clearly with comments.
>
> Other than that, the patch looks good to me.

 The intention here is as you describe. The "needs retry" logic that
comes out of the device handler is inadequate for the multi second
ALUA transition. The "maybe retry" will retry the operation, but those
retries are all exhausted very quickly. So, yes, when the retries are
exhausted and the target is still returning ASYMMETRIC ACCESS STATE
TRANSITION, 04h/0Ah, the path should not be failed since the target is
still within its transition timer in most cases. From my
interpretation of the SPC specification, failing the path so quickly
is incorrect.

After the initial retries are exhausted, the command is re-prepped and
returns to the device handler. I added the 1 second delay so that the
initiator doesn't keep aggressively retrying that path as the
transition state can last for some time. The device_handler will take
care of setting the path state to standby, as you stated above, and an
error is returned should the transition timer expire during this
re-prep looping from its prep_fn. This will satisfy the concern of a
misbehaving target that stays in the transition state too long. If the
transition timer does not fire, which will be the case I would expect
virtually all of the time, the request will succeed or fail once the
port group enters either an active or error state post transition
state.

Thanks,
Brian

> On Wed, Jun 8, 2022 at 8:28 AM Brian Bunker <brian@purestorage.com> wrote:
>>
>> > Please explain how th (failing the path after the timeout) will come to
>> > pass.
>> >
>> > AFAICS, this means that commands will first be retried without delay
>> > from the mid layer (NEEDS_RETRY / maybe_retry logic in Are you relying
>> > scsi_decide_disposition()), until the retries are exhausted. After
>> > that, they'll be requeued on the high layer, with a 1s delay and
>> > retries reloaded. How do we make sure this doesn't go on forever?
>> >
>> > Do you rely on alua_rtpg() setting the state to STANDBY and
>> > alua_prep_fn() subsequently returning an error?
>> >
>> > I believe this should at least be explained more clearly with comments.
>> >
>> > Other than that, the patch looks good to me.
>> The intention here is as you describe. The "needs retry" logic that
>> comes out of the device handler is inadequate for the multi second
>> ALUA transition. The "maybe retry" will retry the operation, but those
>> retries are all exhausted very quickly. So, yes, when the retries are
>> exhausted and the target is still returning ASYMMETRIC ACCESS STATE
>> TRANSITION, 04h/0Ah, the path should not be failed since the target is
>> still within its transition timer in most cases. From my
>> interpretation of the SPC specification, failing the path so quickly
>> is incorrect.
>>
>> After the initial retries are exhausted, the command is re-prepped and
>> returns to the device handler. I added the 1 second delay so that the
>> initiator doesn't keep aggressively retrying that path as the
>> transition state can last for some time. The device_handler will take
>> care of setting the path state to standby, as you stated above, and an
>> error is returned should the transition timer expire during this
>> re-prep looping from its prep_fn. This will satisfy the concern of a
>> misbehaving target that stays in the transition state too long. If the
>> transition timer does not fire, which will be the case I would expect
>> virtually all of the time, the request will succeed or fail once the
>> port group enters either an active or error state post transition
>> state.
>>
>>
>> On Wed, Jun 8, 2022 at 12:45 AM Martin Wilck <martin.wilck@suse.com> wrote:
>> >
>> > On Tue, 2022-06-07 at 12:58 -0700, Brian Bunker wrote:
>> > > The error path for the SCSI check condition of not ready, target in
>> > > ALUA state transition, will result in the failure of that path after
>> > > the retries are exhausted. In most cases that is well ahead of the
>> > > transition timeout established in the SCSI ALUA device handler.
>> > >
>> > > Instead, reprep the command and re-add it to the queue after a 1
>> > > second
>> > > delay. This will allow the handler to take care of the timeout and
>> > > only fail the path in the transition state if the target has exceeded
>> > > the transition timeout (default 60 seconds).
>> > >
>> >
>> > Please explain how th (failing the path after the timeout) will come to
>> > pass.
>> >
>> > AFAICS, this means that commands will first be retried without delay
>> > from the mid layer (NEEDS_RETRY / maybe_retry logic in Are you relying
>> > scsi_decide_disposition()), until the retries are exhausted. After
>> > that, they'll be requeued on the high layer, with a 1s delay and
>> > retries reloaded. How do we make sure this doesn't go on forever?
>> >
>> > Do you rely on alua_rtpg() setting the state to STANDBY and
>> > alua_prep_fn() subsequently returning an error?
>> >
>> > I believe this should at least be explained more clearly with comments.
>> >
>> > Other than that, the patch looks good to me.
>> >
>> > Regards
>> > Martin
>> >
>> >
>> > > Acked-by: Krishna Kant <krishna.kant@purestorage.com>
>> > > Acked-by: Seamus Connor <sconnor@purestorage.com>
>> > > Signed-off-by: Brian Bunker <brian@purestorage.com>
>> > > ---
>> > >  drivers/scsi/scsi_lib.c | 44 +++++++++++++++++++++++----------------
>> > > --
>> > >  1 file changed, 25 insertions(+), 19 deletions(-)
>> > >
>> >
>> >
>> >
>> >
>> > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
>> > > index 6ffc9e4258a8..1afb267ff9a2 100644
>> > > --- a/drivers/scsi/scsi_lib.c
>> > > +++ b/drivers/scsi/scsi_lib.c
>> > > @@ -118,7 +118,7 @@ scsi_set_blocked(struct scsi_cmnd *cmd, int
>> > > reason)
>> > >         }
>> > >  }
>> > >
>> > > -static void scsi_mq_requeue_cmd(struct scsi_cmnd *cmd)
>> > > +static void scsi_mq_requeue_cmd(struct scsi_cmnd *cmd, unsigned long
>> > > msecs)
>> > >  {
>> > >         struct request *rq = scsi_cmd_to_rq(cmd);
>> > >
>> > > @@ -128,7 +128,12 @@ static void scsi_mq_requeue_cmd(struct scsi_cmnd
>> > > *cmd)
>> > >         } else {
>> > >                 WARN_ON_ONCE(true);
>> > >         }
>> > > -       blk_mq_requeue_request(rq, true);
>> > > +
>> > > +       if (msecs) {
>> > > +               blk_mq_requeue_request(rq, false);
>> > > +               blk_mq_delay_kick_requeue_list(rq->q, msecs);
>> > > +       } else
>> > > +               blk_mq_requeue_request(rq, true);
>> > >  }
>> > >
>> > >  /**
>> > > @@ -658,14 +663,6 @@ static unsigned int scsi_rq_err_bytes(const
>> > > struct request *rq)
>> > >         return bytes;
>> > >  }
>> > >
>> > > -/* Helper for scsi_io_completion() when "reprep" action required. */
>> > > -static void scsi_io_completion_reprep(struct scsi_cmnd *cmd,
>> > > -                                     struct request_queue *q)
>> > > -{
>> > > -       /* A new command will be prepared and issued. */
>> > > -       scsi_mq_requeue_cmd(cmd);
>> > > -}
>> > > -
>> > >  static bool scsi_cmd_runtime_exceeced(struct scsi_cmnd *cmd)
>> > >  {
>> > >         struct request *req = scsi_cmd_to_rq(cmd);
>> > > @@ -683,14 +680,21 @@ static bool scsi_cmd_runtime_exceeced(struct
>> > > scsi_cmnd *cmd)
>> > >         return false;
>> > >  }
>> > >
>> > > +/*
>> > > + * When ALUA transition state is returned, reprep the cmd to
>> > > + * use the ALUA handlers transition timeout. Delay the reprep
>> > > + * 1 sec to avoid aggressive retries of the target in that
>> > > + * state.
>> > > + */
>> > > +#define ALUA_TRANSITION_REPREP_DELAY   1000
>> > > +
>> > >  /* Helper for scsi_io_completion() when special action required. */
>> > >  static void scsi_io_completion_action(struct scsi_cmnd *cmd, int
>> > > result)
>> > >  {
>> > > -       struct request_queue *q = cmd->device->request_queue;
>> > >         struct request *req = scsi_cmd_to_rq(cmd);
>> > >         int level = 0;
>> > > -       enum {ACTION_FAIL, ACTION_REPREP, ACTION_RETRY,
>> > > -             ACTION_DELAYED_RETRY} action;
>> > > +       enum {ACTION_FAIL, ACTION_REPREP, ACTION_DELAYED_REPREP,
>> > > +             ACTION_RETRY, ACTION_DELAYED_RETRY} action;
>> > >         struct scsi_sense_hdr sshdr;
>> > >         bool sense_valid;
>> > >         bool sense_current = true;      /* false implies "deferred
>> > > sense" */
>> > > @@ -779,8 +783,8 @@ static void scsi_io_completion_action(struct
>> > > scsi_cmnd *cmd, int result)
>> > >                                         action =
>> > > ACTION_DELAYED_RETRY;
>> > >                                         break;
>> > >                                 case 0x0a: /* ALUA state transition
>> > > */
>> > > -                                       blk_stat = BLK_STS_TRANSPORT;
>> > > -                                       fallthrough;
>> > > +                                       action =
>> > > ACTION_DELAYED_REPREP;
>> > > +                                       break;
>> > >                                 default:
>> > >                                         action = ACTION_FAIL;
>> > >                                         break;
>> > > @@ -839,7 +843,10 @@ static void scsi_io_completion_action(struct
>> > > scsi_cmnd *cmd, int result)
>> > >                         return;
>> > >                 fallthrough;
>> > >         case ACTION_REPREP:
>> > > -               scsi_io_completion_reprep(cmd, q);
>> > > +               scsi_mq_requeue_cmd(cmd, 0);
>> > > +               break;
>> > > +       case ACTION_DELAYED_REPREP:
>> > > +               scsi_mq_requeue_cmd(cmd,
>> > > ALUA_TRANSITION_REPREP_DELAY);
>> > >                 break;
>> > >         case ACTION_RETRY:
>> > >                 /* Retry the same command immediately */
>> > > @@ -933,7 +940,7 @@ static int scsi_io_completion_nz_result(struct
>> > > scsi_cmnd *cmd, int result,
>> > >   * command block will be released and the queue function will be
>> > > goosed. If we
>> > >   * are not done then we have to figure out what to do next:
>> > >   *
>> > > - *   a) We can call scsi_io_completion_reprep().  The request will
>> > > be
>> > > + *   a) We can call scsi_mq_requeue_cmd().  The request will be
>> > >   *     unprepared and put back on the queue.  Then a new command
>> > > will
>> > >   *     be created for it.  This should be used if we made forward
>> > >   *     progress, or if we want to switch from READ(10) to READ(6)
>> > > for
>> > > @@ -949,7 +956,6 @@ static int scsi_io_completion_nz_result(struct
>> > > scsi_cmnd *cmd, int result,
>> > >  void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int
>> > > good_bytes)
>> > >  {
>> > >         int result = cmd->result;
>> > > -       struct request_queue *q = cmd->device->request_queue;
>> > >         struct request *req = scsi_cmd_to_rq(cmd);
>> > >         blk_status_t blk_stat = BLK_STS_OK;
>> > >
>> > > @@ -986,7 +992,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd,
>> > > unsigned int good_bytes)
>> > >          * request just queue the command up again.
>> > >          */
>> > >         if (likely(result == 0))
>> > > -               scsi_io_completion_reprep(cmd, q);
>> > > +               scsi_mq_requeue_cmd(cmd, 0);
>> > >         else
>> > >                 scsi_io_completion_action(cmd, result);
>> > >  }
>> >
>>
>>
>> --
>> Brian Bunker
>> PURE Storage, Inc.
>> brian@purestorage.com
>
>
>
> --
> Brian Bunker
> PURE Storage, Inc.
> brian@purestorage.com



-- 
Brian Bunker
PURE Storage, Inc.
brian@purestorage.com

       reply	other threads:[~2022-06-08 15:39 UTC|newest]

Thread overview: 287+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20220608153543.6621CCE36@lindbergh.monkeyblade.net>
2022-06-08 15:39 ` Brian Bunker [this message]
     [not found] <4Svb6P0lWsz3wZY@mail-02.mail-europe.com>
2023-12-19 12:19 ` Undelivered Mail Returned to Sender Zounp
2023-12-19 13:22   ` Kerin Millar
2023-08-07  7:09 Mail Delivery System
  -- strict thread matches above, loose matches on Subject: below --
2023-02-19 19:40 Mail Delivery System
2023-02-15  0:29 Mail Delivery System
2023-02-12  5:24 Mail Delivery System
2023-02-11 21:14 Mail Delivery System
2023-02-11 20:10 Mail Delivery System
2023-02-11 19:19 Mail Delivery System
2023-02-10 17:55 Mail Delivery System
2023-02-10  4:18 Mail Delivery System
2023-02-09 16:04 Mail Delivery System
2023-02-08 20:14 Mail Delivery System
2023-02-08 18:46 Mail Delivery System
2023-02-08 11:15 Mail Delivery System
2023-02-07 23:20 Mail Delivery System
2023-02-04 21:42 Mail Delivery System
2023-01-30 12:17 Mail Delivery System
2023-01-26  6:38 Mail Delivery System
2023-01-20 19:38 Mail Delivery System
2023-01-16 10:54 Mail Delivery System
2022-09-22  2:36 Mail Delivery System
2022-09-17 15:03 Mail Delivery System
2022-08-29 11:30 Mail Delivery System
2022-08-04 12:05 Mail Delivery System
2022-07-22 22:50 Mail Delivery System
2022-05-28  3:49 Mail Delivery System
2022-05-19  5:41 Mail Delivery System
2022-04-25  3:12 Mail Delivery System
     [not found] <20220316184452.836313C4B1@lindbergh.monkeyblade.net>
2022-03-16 18:49 ` Alexandru Dinu
     [not found] <20220216022900.8DE3E1770A1@mail-01.amsat.org>
2022-02-16  3:20 ` Fwd: " Akihiko Odaki
     [not found]   ` <PH0PR16MB476031694D02A6550B15D294B6359@PH0PR16MB4760.namprd16.prod.outlook.com>
2022-02-16 15:17     ` Philippe Mathieu-Daudé via
2021-11-11 12:18 Mail Delivery System
2021-10-18 16:27 Mail Delivery System
2021-10-15  8:31 Mail Delivery System
     [not found] <20210714174004.3CC94C06175F@lindbergh.monkeyblade.net>
2021-07-14 17:42 ` Hylke Hellinga
2021-07-14 17:45   ` Hylke Hellinga
     [not found] <20210114204233.4E53323AFC@mail.kernel.org>
     [not found] ` <20210114210253.GE1164248@magnolia>
     [not found]   ` <87455a93-7f61-d056-df10-9d574303f875@kernel.org>
2021-01-15  0:39     ` Darrick J. Wong
     [not found] <20200818152940.383D9C061342@lindbergh.monkeyblade.net>
2020-08-18 15:32 ` Fwd: " Rushil Umaretiya
2020-08-20 10:54   ` Stefan Puiu
     [not found] <20170813010827.487F4181D3417@smtprelay07.hostedemail.com>
2017-08-13  1:49 ` Joe Perches
2015-06-20 16:36 Mail Delivery System
2015-06-19 14:19 Mail Delivery System
2015-06-12 12:21 Mail Delivery System
2015-04-30 12:09 Mail Delivery System
2015-03-25 17:06 Mail Delivery System
2015-02-28 12:54 Mail Delivery System
     [not found] <20150221210915.3734E341F916@elvis.mu.org>
2015-02-21 21:18 ` Alfred Perlstein
2015-01-28 22:50 Mail Delivery System
2014-12-09  3:22 Mail Delivery System
2014-11-05  1:58 Mail Delivery System
2014-11-05  1:53 Mail Delivery System
2014-11-04 19:35 Mail Delivery System
2014-10-13  6:16 Mail Delivery System
2014-10-10 14:49 Mail Delivery System
2014-10-08  0:14 Mail Delivery System
2014-10-07  2:09 Mail Delivery System
2014-10-02 13:13 Mail Delivery System
2014-09-10 14:33 Mail Delivery System
2014-08-28  7:37 Mail Delivery System
2014-08-28  6:41 Mail Delivery System
2014-08-28  5:22 Mail Delivery System
2014-08-27 21:36 Mail Delivery System
2014-08-27 21:02 Mail Delivery System
2014-08-16  4:25 Mail Delivery System
2014-08-13 22:38 Mail Delivery System
2014-08-04 11:39 Mail Delivery System
2014-08-04  3:42 Mail Delivery System
2014-08-04  0:26 Mail Delivery System
2014-07-30 16:08 Mail Delivery System
2014-07-23 19:32 Mail Delivery System
2014-07-23 19:01 Mail Delivery System
2014-07-23 10:16 Mail Delivery System
2014-07-23  7:46 Mail Delivery System
2014-07-23  4:47 Mail Delivery System
2014-07-21 19:51 Mail Delivery System
2014-02-21 12:32 Mail Delivery System
2014-02-21  4:05 Mail Delivery System
2014-02-18  0:47 Mail Delivery System
2014-02-17 11:36 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2014-02-16 23:49 Mail Delivery System
2013-07-02 16:03 Mail Delivery System
2013-03-30  4:13 Mail Delivery System
2013-03-25 20:16 Mail Delivery System
2013-03-25 13:18 Mail Delivery System
2013-03-25 13:08 Mail Delivery System
2013-03-25 10:46 Mail Delivery System
2013-03-25 10:20 Mail Delivery System
2013-03-25  8:32 Mail Delivery System
2013-03-25  7:53 Mail Delivery System
2013-03-25  7:25 Mail Delivery System
2013-03-25  5:12 Mail Delivery System
2013-03-25  4:50 Mail Delivery System
2013-03-25  2:52 Mail Delivery System
2012-11-01 17:37 Mail Delivery System
2012-10-29  4:13 Mail Delivery System
2012-10-29  2:57 Mail Delivery System
2012-10-25  4:59 Mail Delivery System
2012-10-22 23:57 Mail Delivery System
2012-10-22 23:00 Mail Delivery System
2012-10-22 22:30 Mail Delivery System
2012-10-18  9:38 Mail Delivery System
2012-10-17 19:55 Mail Delivery System
2012-10-17 11:53 Mail Delivery System
2012-10-17  8:20 Mail Delivery System
2012-10-17  4:48 Mail Delivery System
2012-09-15  4:32 Mail Delivery System
2012-08-31  3:09 Mail Delivery System
2012-08-30  7:21 Mail Delivery System
2012-08-29 12:26 Mail Delivery System
2012-08-28  7:04 Mail Delivery System
2012-08-27  2:58 Mail Delivery System
2012-08-23 17:13 Mail Delivery System
2012-08-14  4:56 Mail Delivery System
2012-06-11  2:22 Mail Delivery System
2012-05-11  0:09 Mail Delivery System
2012-05-10 19:08 Mail Delivery System
2012-05-10 15:05 Mail Delivery System
2012-05-10  2:09 Mail Delivery System
2012-05-10  0:15 Mail Delivery System
2012-05-09 19:57 Mail Delivery System
2012-05-09  8:39 Mail Delivery System
2012-05-03  1:08 postmaster-noreply-FMRk+c35SBqonA0d6jMUrA
2012-04-12 18:46 Mail Delivery System
2012-04-12 18:29 Mail Delivery System
2012-04-12  0:52 Mail Delivery System
2012-04-11 12:35 Mail Delivery System
2012-04-11 11:02 postmaster-noreply-FMRk+c35SBqonA0d6jMUrA
2012-04-11  8:36 postmaster-noreply-FMRk+c35SBqonA0d6jMUrA
2012-04-11  6:56 Mail Delivery System
2012-04-11  6:54 Mail Delivery System
2012-04-11  6:32 Mail Delivery System
2012-04-11  1:48 Mail Delivery System
2012-04-10 17:26 postmaster-noreply-FMRk+c35SBqonA0d6jMUrA
2012-04-09 14:12 Mail Delivery System
2012-04-03  9:11 Mail Delivery System
2012-04-03  0:37 postmaster-noreply-FMRk+c35SBqonA0d6jMUrA
2012-04-02 23:59 postmaster-noreply-FMRk+c35SBqonA0d6jMUrA
2012-04-02 23:34 Mail Delivery System
2012-04-02 21:57 postmaster-noreply-FMRk+c35SBqonA0d6jMUrA
2012-03-31  0:48 Mail Delivery System
2012-03-30 17:45 Mail Delivery System
2012-03-30  3:45 Mail Delivery System
2012-03-26 21:48 Mail Delivery System
2012-03-13 11:03 Mail Delivery System
2012-03-07 22:52 Mail Delivery System
2012-03-01 23:37 Mail Delivery System
2012-03-01 13:47 Mail Delivery System
2012-03-01 13:22 Mail Delivery System
2012-02-29 11:44 Mail Delivery System
2012-02-22 23:09 Mail Delivery System
2012-02-22 18:13 Mail Delivery System
2012-02-22  8:19 Mail Delivery System
2012-02-21  5:42 Mail Delivery System
2012-02-21  1:48 Mail Delivery System
2012-01-29 12:35 Mail Delivery System
2012-01-28  3:53 Mail Delivery System
2012-01-26  9:06 Mail Delivery System
2012-01-24  9:27 Mail Delivery System
2012-01-19  1:54 Mail Delivery System
2012-01-18 20:06 Mail Delivery System
2012-01-18 18:44 Mail Delivery System
2012-01-18  8:37 Mail Delivery System
2012-01-04  0:28 Mail Delivery System
2011-12-20 22:39 Mail Delivery System
2011-12-19 19:10 Mail Delivery System
2011-12-10  1:50 Mail Delivery System
2011-12-09 19:39 Mail Delivery System
2011-12-06 14:54 Mail Delivery System
2011-12-06 14:54 Mail Delivery System
2011-12-06 14:54 Mail Delivery System
2011-12-06 14:54 Mail Delivery System
2011-12-06 14:54 Mail Delivery System
2011-12-05 21:14 Mail Delivery System
2011-12-03 12:46 Mail Delivery System
2011-12-03  8:24 Mail Delivery System
2011-12-01  2:29 Mail Delivery System
2011-11-30 22:39 Mail Delivery System
2011-11-30  5:01 Mail Delivery System
2011-11-26  0:07 Mail Delivery System
2011-11-20 10:21 Mail Delivery System
2011-11-19 11:19 Mail Delivery System
2011-11-17 15:46 Mail Delivery System
2011-11-17 12:58 Mail Delivery System
2011-11-17 11:13 Mail Delivery System
2011-11-15 15:20 Mail Delivery System
2011-11-15 11:22 Mail Delivery System
2011-11-15 11:21 Mail Delivery System
2011-11-08 13:47 Mail Delivery System
2011-11-03 13:40 Mail Delivery System
2011-11-01 16:48 Mail Delivery System
2011-10-27 10:45 Mail Delivery System
2010-12-05 18:50 Unknown, MAILER-DAEMON
2010-12-04 20:20 Unknown, MAILER-DAEMON
2007-08-26 13:52 Mail Delivery System
2007-04-27  4:39 Mail Delivery System
2007-03-19  0:06 Mail Delivery System
2007-03-09 20:29 Mail Delivery System
2007-03-08  5:23 Mail Delivery System
2007-03-07 22:32 Mail Delivery System
2007-02-23 21:13 Mail Delivery System
2007-02-23 21:13 Mail Delivery System
2007-02-23 14:53 Mail Delivery System
2007-02-21 11:31 Mail Delivery System
2007-02-21 11:31 Mail Delivery System
2007-02-20 11:27 Mail Delivery System
2007-02-20  5:04 Mail Delivery System
2007-02-20  2:10 Mail Delivery System
2007-02-19 16:05 Mail Delivery System
2007-02-18 12:17 Mail Delivery System
2007-02-17 12:58 Mail Delivery System
2007-02-15 22:35 Mail Delivery System
2007-02-13  8:57 Mail Delivery System
2007-02-10  0:27 Mail Delivery System
2007-02-06 11:28 Mail Delivery System
2007-02-04 11:31 Mail Delivery System
2007-02-04  3:05 Mail Delivery System
2007-02-01 19:06 Mail Delivery System
2007-01-19  0:01 Mail Delivery System
2007-01-11 14:42 Mail Delivery System
2006-12-22  3:46 Mail Delivery System
2006-12-09  0:29 Mail Delivery System
2006-12-08 23:32 Mail Delivery System
2006-12-08 12:51 Mail Delivery System
2006-12-04  1:14 Mail Delivery System
2006-12-02 22:45 Mail Delivery System
2006-12-02 10:59 Mail Delivery System
2006-12-01 23:42 Mail Delivery System
2006-11-30  8:06 Mail Delivery System
2006-11-24 20:07 Mail Delivery System
2006-11-24 19:02 Mail Delivery System
2006-11-22  6:56 Mail Delivery System
2006-11-21  6:35 Mail Delivery System
2006-11-18 12:17 Mail Delivery System
2006-11-17 11:42 Mail Delivery System
2006-11-14  7:35 Mail Delivery System
2006-11-14  6:56 Mail Delivery System
2006-11-08 15:21 Mail Delivery System
2006-11-08  5:54 Mail Delivery System
2006-11-07 14:45 Mail Delivery System
2006-11-07  5:11 Mail Delivery System
2006-11-06 14:11 Mail Delivery System
2006-10-30 15:04 Mail Delivery System
2006-10-30  9:39 Mail Delivery System
2006-10-29  8:18 Mail Delivery System
2006-10-27 16:45 Mail Delivery System
2006-09-19  7:06 Mail Delivery System
2006-07-27 22:16 Mail Delivery System
2006-07-27 14:57 Mail Delivery System
2006-07-26 16:39 Mail Delivery System
2006-07-22 19:08 Mail Delivery System
2006-05-12 17:35 Mail Delivery System
2006-04-13 19:13 Mail Delivery System
2006-04-01  6:02 Mail Delivery System
2006-01-22 20:18 Mail Delivery System
2006-01-16 14:57 Mail Delivery System
     [not found] <20060107100533.CED1E21456@linux.site>
2006-01-09 10:03 ` Alan Jenkins
2005-09-21 14:22 Mail Delivery System
2005-09-19 23:39 Mail Delivery System
2004-11-10 11:13 Mail Delivery System
2004-11-09  2:13 Mail Delivery System
2004-11-06 18:45 Mail Delivery System
2004-10-27 20:41 Mail Delivery System
2004-10-25  2:06 Mail Delivery System
2004-09-23  4:25 Mail Delivery System
2004-09-22  9:48 Mail Delivery System
2004-09-22  6:26 Mail Delivery System
2004-09-22  3:19 Mail Delivery System
2004-09-21 14:56 Mail Delivery System
2004-09-21 12:03 Mail Delivery System
2004-04-09  7:28 Mail Delivery System
2004-02-28 13:39 Mail Delivery System
2004-01-27  1:40 Mail Delivery System
2003-09-04  3:06 Mail Delivery System
2003-08-28  3:07 Mail Delivery System
2003-08-26  2:59 Mail Delivery System
2003-08-20 22:32 Mail Delivery System
2003-07-05 23:10 Mail Delivery System
2001-12-07 18:41 Mail Delivery System

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='CAHZQxyKVo7cTq0gGL0nckO3uGebjoDXrr7_3j-A=tJnNA40CvQ@mail.gmail.com' \
    --to=brian@purestorage.com \
    --cc=linux-scsi@vger.kernel.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.