On Tue, Dec 2, 2014 at 7:39 AM, Miao Xie <mi...@cn.fujitsu.com> wrote:
This patchset implement the device scrub/replace function for RAID56,
the
most implementation of the common data is similar to the other RAID
type.
The differentia or difficulty is the parity process. The basic idea
is reading
and check the data which has checksum out of the raid56 stripe lock,
if the
data is right, then lock the raid56 stripe, read out the other data
in the
same stripe, if no IO error happens, calculate the parity and check
the
original one, if the original parity is right, the scrub parity
passes.
or write out the new one. But if the common data(not parity) that we
read out
is wrong, we will try to recover it, and then check and repair the
parity.
And in order to avoid making the code more and more complex, we copy
some
code of common data process for the parity, the cleanup work is in my
TODO list.
We have done some test, the patchset worked well. Of course, more
tests
are welcome. If you are interesting to use it or test it, you can pull
the patchset from
https://github.com/miaoxie/linux-btrfs.git raid56-scrub-replace
Changelog v3 -> v4:
- Fix the problem that the scrub's raid bio was cached, which was
reported
by Chris.
- Remove the 10st patch, the deadlock that was described in that
patch doesn't
exist on the current kernel.
- Rebase the patchset to the top of integration branch
Thanks, I'll try this today. I need to rebase in a new version of the
RCU patches, can you please cook one on top of v3.18-rc6 instead?
-chris
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html