Re: [PATCH 1/4] md: Factor out RAID6 algorithms into lib/

David Woodhouse
2009-07-19T18:04:07Z

On Sat, 2009-07-18 at 13:04 -0700, Dan Williams wrote:
> On Sat, Jul 18, 2009 at 11:42 AM, David Woodhouse<dwmw2@infradead.org> wrote:
> > On Sat, 18 Jul 2009, Dan Williams wrote:
> >> I was under the impression that btrfs wanted to leverage md's stripe
> >> handling logic as well, seems that is not the case?
> >
> > No. We do a bunch of the stuff you mention above, but entirely within the
> > file system so we don't have to invent a bunch of layering violations just
> > to work around a broken design.
>
> Sure, a layering violation for an existing filesystem. For btrfs, at
> LSF'09, we briefly talked about breaking out more than just the
> erasure codes from software-raid into a "libraid". At some point in
> the i/o path a btrfs stripe operation becomes indistinguishable from a
> raid5,6 operation so at first glance there appears to be room to share
> common infrastructure like portions of handle_stripe for example.

At this point we've actually implemented the fundamental parts of
RAID[56] support in btrfs, and it's looking like all we really want is
the arithmetic routines.

Perhaps that's because I'm insufficiently familiar with the
handle_stripe() function to which you refer. Would you like to take to
take a look at http://git.infradead.org/users/dwmw2/btrfs-raid56.git and
attempt to convince me that I should be reusing more?

Criticism in 'diff -up' form is always welcome... :)

--
David Woodhouse Open Source Technology Centre
David.Woodhouse@intel.com Intel Corporation