From: Philip J Kelleher <[email protected]>
Verifies the card is not formatting before DMAs are
transferred.
Signed-off-by: Philip J Kelleher <[email protected]>
-------------------------------------------------------------------------------
diff -uprN -X linux-block-vanilla/Documentation/dontdiff linux-block-vanilla/drivers/block/rsxx/dma.c linux-block/drivers/block/rsxx/dma.c
--- linux-block-vanilla/drivers/block/rsxx/dma.c 2013-04-29 16:06:49.997249172 -0500
+++ linux-block/drivers/block/rsxx/dma.c 2013-04-29 16:10:46.960184429 -0500
@@ -721,7 +721,8 @@ int rsxx_dma_queue_bio(struct rsxx_cardi
}
}
- if (unlikely(card->halt))
+ if (unlikely(card->halt) ||
+ unlikely(card->state == CARD_STATE_FORMATTING))
goto bvec_err;
for (i = 0; i < card->n_targets; i++) {
On Tue, Apr 30 2013, Philip J. Kelleher wrote:
> From: Philip J Kelleher <[email protected]>
>
> Verifies the card is not formatting before DMAs are
> transferred.
>
> Signed-off-by: Philip J Kelleher <[email protected]>
> -------------------------------------------------------------------------------
>
>
> diff -uprN -X linux-block-vanilla/Documentation/dontdiff linux-block-vanilla/drivers/block/rsxx/dma.c linux-block/drivers/block/rsxx/dma.c
> --- linux-block-vanilla/drivers/block/rsxx/dma.c 2013-04-29 16:06:49.997249172 -0500
> +++ linux-block/drivers/block/rsxx/dma.c 2013-04-29 16:10:46.960184429 -0500
> @@ -721,7 +721,8 @@ int rsxx_dma_queue_bio(struct rsxx_cardi
> }
> }
>
> - if (unlikely(card->halt))
> + if (unlikely(card->halt) ||
> + unlikely(card->state == CARD_STATE_FORMATTING))
> goto bvec_err;
>
> for (i = 0; i < card->n_targets; i++) {
What happens if card->state is set to formatting right after this check?
--
Jens Axboe
Thanks for the prompt reply.
I was actually questioning myself if I should include this patch in
in my patch series.
This case really is only a solution if no data is running before
a format is issued. It is currently a know bug if data is running
and a format is issued.
Go ahead and disregard this patch. Once I get sometime to fix
data and format for all cases is when I'll submitted it.
On Wed, May 01, 2013 at 01:43:26PM +0200, Jens Axboe wrote:
> On Tue, Apr 30 2013, Philip J. Kelleher wrote:
> > From: Philip J Kelleher <[email protected]>
> >
> > Verifies the card is not formatting before DMAs are
> > transferred.
> >
> > Signed-off-by: Philip J Kelleher <[email protected]>
> > -------------------------------------------------------------------------------
> >
> >
> > diff -uprN -X linux-block-vanilla/Documentation/dontdiff linux-block-vanilla/drivers/block/rsxx/dma.c linux-block/drivers/block/rsxx/dma.c
> > --- linux-block-vanilla/drivers/block/rsxx/dma.c 2013-04-29 16:06:49.997249172 -0500
> > +++ linux-block/drivers/block/rsxx/dma.c 2013-04-29 16:10:46.960184429 -0500
> > @@ -721,7 +721,8 @@ int rsxx_dma_queue_bio(struct rsxx_cardi
> > }
> > }
> >
> > - if (unlikely(card->halt))
> > + if (unlikely(card->halt) ||
> > + unlikely(card->state == CARD_STATE_FORMATTING))
> > goto bvec_err;
> >
> > for (i = 0; i < card->n_targets; i++) {
>
> What happens if card->state is set to formatting right after this check?
>
> --
> Jens Axboe
>