btrfs-progs: raid56: Introduce raid56 header for later recovery usage

Introduce a new header, kernel-lib/raid56.h, for later raid56 works.

It contains 2 functions, from original btrfs-progs code:
void raid6_gen_syndrome(int disks, size_t bytes, void **ptrs);
int raid5_gen_result(int nr_devs, size_t stripe_len, int dest, void **data);

Will be expanded later and some part of it(RAID6 recover part) may keep
sync with kernel later.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
[ unify gpl header, rename header macro ]
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Qu Wenruo 2017-05-25 14:21:46 +08:00 committed by David Sterba
parent 1618d8afb9
commit 5e2a2acc9a
4 changed files with 31 additions and 6 deletions

View File

@ -108,8 +108,8 @@ libbtrfs_objects = send-stream.o send-utils.o kernel-lib/rbtree.o btrfs-list.o \
uuid-tree.o utils-lib.o rbtree-utils.o uuid-tree.o utils-lib.o rbtree-utils.o
libbtrfs_headers = send-stream.h send-utils.h send.h kernel-lib/rbtree.h btrfs-list.h \ libbtrfs_headers = send-stream.h send-utils.h send.h kernel-lib/rbtree.h btrfs-list.h \
kernel-lib/crc32c.h kernel-lib/list.h kerncompat.h \ kernel-lib/crc32c.h kernel-lib/list.h kerncompat.h \
kernel-lib/radix-tree.h kernel-lib/sizes.h extent-cache.h \ kernel-lib/radix-tree.h kernel-lib/sizes.h kernel-lib/raid56.h \
extent_io.h ioctl.h ctree.h btrfsck.h version.h extent-cache.h extent_io.h ioctl.h ctree.h btrfsck.h version.h
convert_objects = convert/main.o convert/common.o convert/source-fs.o \ convert_objects = convert/main.o convert/common.o convert/source-fs.o \
convert/source-ext2.o convert/source-ext2.o
mkfs_objects = mkfs/main.o mkfs/common.o mkfs_objects = mkfs/main.o mkfs/common.o

View File

@ -193,8 +193,4 @@ int write_tree_block(struct btrfs_trans_handle *trans,
struct extent_buffer *eb); struct extent_buffer *eb);
int write_and_map_eb(struct btrfs_root *root, struct extent_buffer *eb); int write_and_map_eb(struct btrfs_root *root, struct extent_buffer *eb);
/* raid56.c */
void raid6_gen_syndrome(int disks, size_t bytes, void **ptrs);
int raid5_gen_result(int nr_devs, size_t stripe_len, int dest, void **data);
#endif #endif

28
kernel-lib/raid56.h Normal file
View File

@ -0,0 +1,28 @@
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License v2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 021110-1307, USA.
*/
/*
* Original headers from kernel library for RAID5/6 calculations, not from
* btrfs kernel header.
*/
#ifndef __BTRFS_PROGS_RAID56_H__
#define __BTRFS_PROGS_RAID56_H__
void raid6_gen_syndrome(int disks, size_t bytes, void **ptrs);
int raid5_gen_result(int nr_devs, size_t stripe_len, int dest, void **data);
#endif

View File

@ -28,6 +28,7 @@
#include "print-tree.h" #include "print-tree.h"
#include "volumes.h" #include "volumes.h"
#include "utils.h" #include "utils.h"
#include "kernel-lib/raid56.h"
struct stripe { struct stripe {
struct btrfs_device *dev; struct btrfs_device *dev;