On Fri, May 11, 2018 at 09:24:46PM +0200, Goffredo Baroncelli wrote: > Add the raid6 recovery, in order to use a raid6 filesystem even if some > disks (up to two) are missing. > This code use the old md raid6 code already present in grub.
Please fix the commit message formating. > Signed-off-by: Goffredo Baroncelli <kreij...@inwind.it> > --- > grub-core/fs/btrfs.c | 43 +++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 39 insertions(+), 4 deletions(-) > > diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c > index 8d72607d1..07e9db910 100644 > --- a/grub-core/fs/btrfs.c > +++ b/grub-core/fs/btrfs.c > @@ -30,6 +30,7 @@ > #include <grub/i18n.h> > #include <grub/btrfs.h> > #include <grub/crypto.h> > +#include <grub/diskfilter.h> > > GRUB_MOD_LICENSE ("GPLv3+"); > > @@ -696,11 +697,36 @@ rebuild_raid5 (struct raid56_buffer *buffers, > grub_uint64_t nstripes, > csize); > } > > +static grub_err_t > +raid_recover_read_raid56_buffer (void *data, int disk_nr, grub_uint64_t addr, > + void *dest, grub_size_t size) s/raid_recover_read_raid56_buffer/raid6_recover_read_node/ > +{ > + struct raid56_buffer *buffers = data; > + > + (void)addr; I do not like this. grub_uint64_t addr __attribute__ ((unused))" in prototype definition please. > + grub_memcpy(dest, buffers[disk_nr].buf, size); > + > + grub_errno = buffers[disk_nr].data_is_valid ? GRUB_ERR_NONE : > + GRUB_ERR_READ_ERROR; > + return grub_errno; > +} > + > +static void > +rebuild_raid6 (struct raid56_buffer *buffers, grub_uint64_t nstripes, > + grub_uint64_t csize, grub_uint64_t parities_pos, void *dest, > + grub_uint64_t stripen) struct as a argument? > + > +{ > + grub_raid6_recover_generic (buffers, nstripes, stripen, parities_pos, > + dest, 0, csize, > + raid_recover_read_raid56_buffer, 0); > +} > + > static grub_err_t > raid56_read_retry (struct grub_btrfs_data *data, > struct grub_btrfs_chunk_item *chunk, > grub_uint64_t stripe_offset, grub_uint64_t stripen, > - grub_uint64_t csize, void *buf) > + grub_uint64_t csize, void *buf, grub_uint64_t parities_pos) struct as a argument? Daniel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel