[dm-devel] Re: [RFD] BIO_RW_BARRIER - what it means for devices, filesystems, and dm/md.
Nikita Danilov
nikita at clusterfs.com
Mon May 28 11:17:41 UTC 2007
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.
More information about the dm-devel
mailing list