summaryrefslogtreecommitdiff
path: root/kernel-lib
Commit message (Collapse)AuthorAge
* btrfs-progs: fix typos in commentsJosh Soref2018-11-26
| | | | | | | | Generated by https://github.com/jsoref/spelling Issue: #154 Author: Josh Soref <jsoref@users.noreply.github.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: kernel-lib: bitops: Fix big endian compilationRosen Penev2018-11-13
| | | | | | | | | | | | | | Replaced bswap with _ variants bswap_32 etc. While it's a glibc extension, all of the popular libc implementations (glibc, uClibc, musl, BIONIC) seem to support it. Added static inline to two functions to match little endian variants. This fixes a linking error experienced when compiling on gcc 7.3.0 with LTO, possibly a bug that was fixed later. Reviewed-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: Rosen Penev <rosenp@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Implement find_*_bit_le operationsNikolay Borisov2018-10-23
| | | | | | | | | | | This commit introduces explicit little endian bit operations. The only difference with the existing bitops implementation is that bswap(32|64) is called when the _le versions are invoked on a big-endian machine. This is in preparation for adding free space tree conversion support. Reviewed-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Replace homegrown bitops related functions with kernel counterpartsNikolay Borisov2018-10-23
| | | | | | | | | | | Replace existing find_*_bit functions with kernel equivalent. This reduces duplication, simplifies the code (we really have one worker function _find_next_bit) and is quite likely faster. No functional changes. Reviewed-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: kernel-lib: add generated tables.cDavid Sterba2017-08-24
| | | | | | | | | The contents of tables.c hasn't changed for more than 15 years, we don't expect any changes to current contents. New tables might be still added, in that case the file should be regenerated using the included mktables tool and updated. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Introduce wrapper to recover raid56 dataQu Wenruo2017-07-03
| | | | | | | | | | | | | Introduce a wrapper to recover raid56 data. The logical is the same with kernel one, but with different interfaces, since kernel ones cares the performance while in btrfs we don't care that much. And the interface is more caller friendly inside btrfs-progs. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: raid56: Allow raid6 to recover data and PQu Wenruo2017-07-03
| | | | | | | | | | | Copied from kernel lib/raid6/recov.c. Minor modifications includes: - Rename from raid6_datap_recov_intx() to raid5_recov_datap() - Rename parameter from faila to dest1 Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: raid56: Allow raid6 to recover 2 data stripesQu Wenruo2017-07-03
| | | | | | | | | | Copied from kernel lib/raid6/recov.c raid6_2data_recov_intx1() function. With the following modification: - Rename to raid6_recov_data2() for shorter name - s/kfree/free/g modification Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: raid56: Introduce tables for RAID6 recoveryQu Wenruo2017-07-03
| | | | | | | | | | | | | | | | | Use kernel RAID6 galois tables for later RAID6 recovery. Galois tables file, kernel-lib/tables.c is generated by user space program, mktable. Galois field tables declaration, in kernel-lib/raid56.h, is completely copied from kernel. The mktables.c is copied from kernel with minor header/macro modification, to ensure the generated tables.c works well in btrfs-progs. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: raid56: Introduce raid56 header for later recovery usageQu Wenruo2017-07-03
| | | | | | | | | | | | | | | 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>
* btrfs-progs: Introduce kernel sizes to cleanup large intermediate numberQu Wenruo2017-03-08
| | | | | | | | | | | Large numbers like (1024 * 1024 * 1024) may cost reader/reviewer to waste one second to convert to 1G. Introduce kernel include/linux/sizes.h to replace any intermediate number larger than 4096 (not including 4096) to SZ_*. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: move bitops.h to kernel-libDavid Sterba2016-11-24
| | | | | | Forgotten when the rest got moved. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: crc32: use fallback implementation for unaligned buffersDavid Sterba2016-11-09
| | | | | | | | ASAN reports that at some point the crc function gets an unaligned buffer. It's the optimized intel version that casts char to ulong, the buffer is the embedded filename in the directory items. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: move 3rd party kernel library modules to own directoryDavid Sterba2016-10-03
Signed-off-by: David Sterba <dsterba@suse.com>