* Btrfs progs release 4.8
@ 2016-10-05 11:29 David Sterba
2016-10-05 13:33 ` Btrfs progs release 4.8 (32bit builds broken) David Sterba
0 siblings, 1 reply; 4+ messages in thread
From: David Sterba @ 2016-10-05 11:29 UTC (permalink / raw)
To: linux-btrfs; +Cc: clm
Hi,
btrfs-progs 4.8 have been released. Though it's a major version release, there
are no shiny new features. The theme was error handling improvements and
addressing some fuzzer bugz.
There are several fuzzer bugs open and some tests might report errors with ASAN
or UBSAN enabled. Fixing needs more time, as some bugons happen deep in call
chains. At this moment, bugs triggered by fuzzed images are not considered
release blockers.
Changes:
* error handling improvements all over the place
* new fuzzed images, test updates
* doc fixups
* minor cleanups and improvements
* kernel library helpers moved to own directory
* qgroup: fix regression leading to incorrect status after check,
introduced in 4.7
Tarballs: https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/
Git: git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
Shortlog:
Adam Borowski (1):
btrfs-progs: docs: document exit codes from scrub
David Sterba (75):
btrfs-progs: scrub: improved error handling in scrub_read_file
btrfs-progs: fi usage: improved error handling in load_device_info
btrfs-progs: dump-tree: improved error handling in print_extents
btrfs-progs: dump-tree: improved error handling in cmd_inspect_dump_tree
btrfs-progs: switch BUG_ON to ASSERT in reserve_free_space
btrfs-progs: more verbose error handling in creation helpers
btrfs-progs: mkfs: check for sane sectorsize earlier
btrfs-progs: handle errors from btrfs_alloc_path
btrfs-progs: receive: improved error handling in process_snapshot
btrfs-progs: check: improved error handling in calc_extent_flag
btrfs-progs: switch column values to asserts
btrfs-progs: chunk-recover: improve error handling in insert_stripe
btrfs-progs: mkfs: handle block ordering errors in make_btrfs
btrfs-progs: convert: improve error handling in create_image_file_range
btrfs-progs: catch invalid flags in open_ctree_fd
btrfs-progs: remove trivial helpers for filtering functions
btrfs-progs: qgroup: switch to common message helpers
btrfs-progs: improved error handling in btrfs_print_tree
btrfs-progs: inspect: improved error handling
btrfs-progs: fi du: catch bogus extent lengths
btrfs-progs: fi du: improved error handling in mark_inode_seen
btrfs-progs: tree-stats: switch to common message helpers
btrfs-progs: prop: simplify help printing code
btrfs-progs: remove redundant check in btrfs_add_to_fsid
btrfs-progs: improve error handling in btrfs_alloc_data_chunk
btrfs-progs: dump-super: switch to common message helpers
btrfs-progs: corrupt-block: improved error handling in corrupt_item_nocow
btrfs-progs: improve error handling in btrfs_add_to_fsid
btrfs-progs: use standard allocation functions in non-kenrel code
btrfs-progs: check: handle errors returned by add_extent_rec_nolookup
btrfs-progs: check: improve error handling in add_extent_rec_nolookup
btrfs-progs: convert: improve error handling in do_rollback
btrfs-progs: image: switch to common message helpers
btrfs-progs: check: switch some messages to common helpers
btrfs-progs: corrupt-block: fix assertion condition
btrfs-progs: improve error handling in clone_inode_rec
btrfs-progs: cleanup, kill trivial btrfs_set_key_type helper
btrfs-progs: cleanup, kill trivial btrfs_key_type helper
btrfs-progs: remove unused variable in add_inode_items
btrfs-progs: use PATH_MAX in cmd_inspect_logical_resolve
btrfs-progs: mkfs: remove useless helper
btrfs-progs: tests: iterate over fuzzed images and test various tools
btrfs-progs: tests: add script to scan results for some known runtime errors
btrfs-progs: build: add basic support for subdirectory build
btrfs-progs: move 3rd party kernel library modules to own directory
btrfs-progs: restore: update help text
btrfs-progs: remove stray function declaration
btrfs-progs: don't write to optarg in btrfs_qgroup_parse_sort_string
btrfs-progs: constify string arguments where appropriate
btrfs-progs: image: use common message helpers
btrfs-progs: btrfstune: use common message helpers
btrfs-progs: more sanity checks in read_tree_block_fs_info
btrfs-progs: tests: add fuzzed images with bad blocksize/lengh of eb
btrfs-progs: check: better error handling in find_parent_roots
btrfs-progs: tests: add fuzzed image with bad parent refs, qgroup-verify
btrfs-progs: image: catch zero length extents, avoid endless loop
btrfs-progs: image: return negativer error from all paths in mdrestore_init
btrfs-progs: image: drop useless bug_on
btrfs-progs: print value when assertion fails
btrfs-progs: chunk-recover: handle duplicate cache entries
btrfs-progs: don't access freed memory in btrfs_close_devices
btrfs-progs: tests: split test 004 to separate tests
btrfs-progs: tests: don't treat segfault as ignorable error
btrfs-progs: rename __setup_root and change to return void
btrfs-progs: convert: add new callback to check state
btrfs-progs: dump-super: print chunks after validation
btrfs-progs: tests: teach run_mayfail about sigabrt
btrfs-progs: kerncompat: make WARN_ON more verbose
btrfs-progs: kerncompat: call abort at the end of assert_trace
btrfs-progs: build: add alias for check tests
btrfs-progs: kerncompat: add build-time assertion support
btrfs-progs: mkfs: fix warning for printf format on 32bit
btrfs-progs: add build-time checks for size of ioctl structures
btrfs-progs: update CHANGES for v4.8
Btrfs progs v4.8
Domagoj Tršan (1):
btrfs-progs: change btrfs_csum_final result param type to u8
Lakshmipathi.G (1):
btrfs-progs: convert: check source file system state
Nicholas D Steeves (1):
btrfs-progs: fix user-facing typos in docs and help strings
Qu Wenruo (4):
btrfs-progs: Return more meaningful value for btrfs_read_deve_super
btrfs-progs: super-recover: Reuse btrfs_read_dev_super function
btrfs-progs: qgroup: Fix regression leads to corrupted qgroup status
btrfs-progs: Remove unnecessary parameter to clear_extent_uptodate
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Btrfs progs release 4.8 (32bit builds broken)
2016-10-05 11:29 Btrfs progs release 4.8 David Sterba
@ 2016-10-05 13:33 ` David Sterba
2016-10-05 22:25 ` Justin Maggard
0 siblings, 1 reply; 4+ messages in thread
From: David Sterba @ 2016-10-05 13:33 UTC (permalink / raw)
To: David Sterba; +Cc: linux-btrfs, clm
I got a report that the 32bit builds are broken. This seems to be caused
by padding inserted (or not) into the structures and depends on a
compiler version. The error messages may look cryptic, but if you see
something like
ioctl.h:570:1: note: in expansion of macro 'BUILD_ASSERT'
BUILD_ASSERT(sizeof(struct btrfs_ioctl_received_subvol_args) == 200);
that means that the given structure has an unexpected size. Fixing that
properly will probably lead to some tricks to force the exact size
regardless of arch bits and compiler.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Btrfs progs release 4.8 (32bit builds broken)
2016-10-05 13:33 ` Btrfs progs release 4.8 (32bit builds broken) David Sterba
@ 2016-10-05 22:25 ` Justin Maggard
2016-10-05 22:27 ` Justin Maggard
0 siblings, 1 reply; 4+ messages in thread
From: Justin Maggard @ 2016-10-05 22:25 UTC (permalink / raw)
To: dsterba, David Sterba, BTRFS, Chris Mason
I saw a 32-bit build failure, but it looked like a legitimate bug,
unrelated to the compiler version. Here's the trivial fix:
diff --git a/ioctl.h b/ioctl.h
index a7235c0..26a3a5a 100644
--- a/ioctl.h
+++ b/ioctl.h
@@ -606,7 +606,7 @@ struct btrfs_ioctl_send_args {
* Size of structure depends on pointer width, was not caught. Kernel handles
* pointer width differences transparently
*/
-BUILD_ASSERT(sizeof(__u64 *) == 8
+BUILD_ASSERT(sizeof(__u64) == 8
? sizeof(struct btrfs_ioctl_send_args) == 72
: (sizeof(void *) == 4
? sizeof(struct btrfs_ioctl_send_args) == 68
-Justin
On Wed, Oct 5, 2016 at 6:33 AM, David Sterba <dsterba@suse.cz> wrote:
> I got a report that the 32bit builds are broken. This seems to be caused
> by padding inserted (or not) into the structures and depends on a
> compiler version. The error messages may look cryptic, but if you see
> something like
>
> ioctl.h:570:1: note: in expansion of macro 'BUILD_ASSERT'
> BUILD_ASSERT(sizeof(struct btrfs_ioctl_received_subvol_args) == 200);
>
> that means that the given structure has an unexpected size. Fixing that
> properly will probably lead to some tricks to force the exact size
> regardless of arch bits and compiler.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: Btrfs progs release 4.8 (32bit builds broken)
2016-10-05 22:25 ` Justin Maggard
@ 2016-10-05 22:27 ` Justin Maggard
0 siblings, 0 replies; 4+ messages in thread
From: Justin Maggard @ 2016-10-05 22:27 UTC (permalink / raw)
To: dsterba, David Sterba, BTRFS, Chris Mason
Oops, I mistook the intent of that check. Please disregard.
On Wed, Oct 5, 2016 at 3:25 PM, Justin Maggard <jmaggard10@gmail.com> wrote:
> I saw a 32-bit build failure, but it looked like a legitimate bug,
> unrelated to the compiler version. Here's the trivial fix:
>
> diff --git a/ioctl.h b/ioctl.h
> index a7235c0..26a3a5a 100644
> --- a/ioctl.h
> +++ b/ioctl.h
> @@ -606,7 +606,7 @@ struct btrfs_ioctl_send_args {
> * Size of structure depends on pointer width, was not caught. Kernel handles
> * pointer width differences transparently
> */
> -BUILD_ASSERT(sizeof(__u64 *) == 8
> +BUILD_ASSERT(sizeof(__u64) == 8
> ? sizeof(struct btrfs_ioctl_send_args) == 72
> : (sizeof(void *) == 4
> ? sizeof(struct btrfs_ioctl_send_args) == 68
>
> -Justin
>
> On Wed, Oct 5, 2016 at 6:33 AM, David Sterba <dsterba@suse.cz> wrote:
>> I got a report that the 32bit builds are broken. This seems to be caused
>> by padding inserted (or not) into the structures and depends on a
>> compiler version. The error messages may look cryptic, but if you see
>> something like
>>
>> ioctl.h:570:1: note: in expansion of macro 'BUILD_ASSERT'
>> BUILD_ASSERT(sizeof(struct btrfs_ioctl_received_subvol_args) == 200);
>>
>> that means that the given structure has an unexpected size. Fixing that
>> properly will probably lead to some tricks to force the exact size
>> regardless of arch bits and compiler.
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-10-05 22:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-05 11:29 Btrfs progs release 4.8 David Sterba
2016-10-05 13:33 ` Btrfs progs release 4.8 (32bit builds broken) David Sterba
2016-10-05 22:25 ` Justin Maggard
2016-10-05 22:27 ` Justin Maggard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).