Re: [RFD] BIO_RW_BARRIER - what it means for devices,filesystems, and dm/md.

From: Nikita Danilov
Date: Mon May 28 2007 - 07:18:17 EST


Neil Brown writes:
>

[...]

> Thus the general sequence might be:
>
> a/ issue all "preceding writes".
> b/ issue the commit write with BIO_RW_BARRIER
> c/ wait for the commit to complete.
> If it was successful - done.
> If it failed other than with EOPNOTSUPP, abort
> else continue
> d/ wait for all 'preceding writes' to complete
> e/ call blkdev_issue_flush
> f/ issue commit write without BIO_RW_BARRIER
> g/ wait for commit write to complete
> if it failed, abort
> h/ call blkdev_issue
> DONE
>
> steps b and c can be left out if it is known that the device does not
> support barriers. The only way to discover this to try and see if it
> fails.
>
> I don't think any filesystem follows all these steps.

It seems that steps b/ -- h/ are quite generic, and can be implemented
once in a generic code (with some synchronization mechanism like
wait-queue at d/).

Nikita.

[...]

>
> Thank you for your attention.
>
> NeilBrown
>

Nikita.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/