* [PATCH 1/4] Properly cast to avoid compiler warnings, fixes FTBFS on alpha and ia64.
@ 2014-09-21 1:01 Dimitri John Ledkov
2014-09-21 1:01 ` [PATCH 2/4] Fixes FTBFS with --no-add-needed Dimitri John Ledkov
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Dimitri John Ledkov @ 2014-09-21 1:01 UTC (permalink / raw)
To: linux-btrfs; +Cc: Dimitri John Ledkov
Bug-Debian: http://bugs.debian.org/539433
Bug-Debian: http://bugs.debian.org/583768
Authors:
Luca Bruno <lucab@debian.org>
Alexander Kurtz <kurtz.alex@googlemail.com>
Daniel Baumann <daniel.baumann@progress-technologies.net>
Signed-off-by: Dimitri John Ledkov <xnox@debian.org>
---
btrfs-convert.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/btrfs-convert.c b/btrfs-convert.c
index 71b7bd6..3673050 100644
--- a/btrfs-convert.c
+++ b/btrfs-convert.c
@@ -2441,7 +2441,7 @@ static int do_rollback(const char *devname)
ext2_root = btrfs_read_fs_root(root->fs_info, &key);
if (!ext2_root || IS_ERR(ext2_root)) {
fprintf(stderr, "unable to open subvol %llu\n",
- key.objectid);
+ (unsigned long long) key.objectid);
goto fail;
}
--
2.1.0.rc1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 2/4] Fixes FTBFS with --no-add-needed. 2014-09-21 1:01 [PATCH 1/4] Properly cast to avoid compiler warnings, fixes FTBFS on alpha and ia64 Dimitri John Ledkov @ 2014-09-21 1:01 ` Dimitri John Ledkov 2014-09-22 12:23 ` David Sterba 2014-09-21 1:01 ` [PATCH 3/4] Fixing unaligned memory accesses Dimitri John Ledkov 2014-09-21 1:01 ` [PATCH 4/4] Default to acting like fsck Dimitri John Ledkov 2 siblings, 1 reply; 9+ messages in thread From: Dimitri John Ledkov @ 2014-09-21 1:01 UTC (permalink / raw) To: linux-btrfs; +Cc: Luk Claes, Dimitri John Ledkov From: Luk Claes <luk@debian.org> Bug-Debian: http://bugs.debian.org/554059 Signed-off-by: Dimitri John Ledkov <xnox@debian.org> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e721e99..441e925 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ TESTS = fsck-tests.sh convert-tests.sh INSTALL = install prefix ?= /usr/local bindir = $(prefix)/bin -lib_LIBS = -luuid -lblkid -lm -lz -llzo2 -L. +lib_LIBS = -luuid -lblkid -lm -lz -llzo2 -lcom_err -L. libdir ?= $(prefix)/lib incdir = $(prefix)/include/btrfs LIBS = $(lib_LIBS) $(libs_static) -- 2.1.0.rc1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/4] Fixes FTBFS with --no-add-needed. 2014-09-21 1:01 ` [PATCH 2/4] Fixes FTBFS with --no-add-needed Dimitri John Ledkov @ 2014-09-22 12:23 ` David Sterba 0 siblings, 0 replies; 9+ messages in thread From: David Sterba @ 2014-09-22 12:23 UTC (permalink / raw) To: Dimitri John Ledkov; +Cc: linux-btrfs, Luk Claes On Sun, Sep 21, 2014 at 02:01:20AM +0100, Dimitri John Ledkov wrote: > --- a/Makefile > +++ b/Makefile > @@ -26,7 +26,7 @@ TESTS = fsck-tests.sh convert-tests.sh > INSTALL = install > prefix ?= /usr/local > bindir = $(prefix)/bin > -lib_LIBS = -luuid -lblkid -lm -lz -llzo2 -L. > +lib_LIBS = -luuid -lblkid -lm -lz -llzo2 -lcom_err -L. This will add the com_err library to all binaries, while it's actually used only by the btrfs-convert utility and this dependency has been properly added in ef85e7e285daf (released in 3.12). One can add a per-target libraries like btrfs_convert_libs = -lext2fs -lcom_err Also please be more descriptive what the actual error is in the changelog itself so I don't have to look it up in the referenced bug. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/4] Fixing unaligned memory accesses. 2014-09-21 1:01 [PATCH 1/4] Properly cast to avoid compiler warnings, fixes FTBFS on alpha and ia64 Dimitri John Ledkov 2014-09-21 1:01 ` [PATCH 2/4] Fixes FTBFS with --no-add-needed Dimitri John Ledkov @ 2014-09-21 1:01 ` Dimitri John Ledkov 2014-09-22 13:03 ` David Sterba 2014-09-21 1:01 ` [PATCH 4/4] Default to acting like fsck Dimitri John Ledkov 2 siblings, 1 reply; 9+ messages in thread From: Dimitri John Ledkov @ 2014-09-21 1:01 UTC (permalink / raw) To: linux-btrfs; +Cc: Shawn Landen, Dimitri John Ledkov From: Shawn Landen <shawnlandden@gmail.com> Bug-Debian: http://bugs.debian.org/656955 Signed-off-by: Dimitri John Ledkov <xnox@debian.org> --- ctree.h | 18 ++++++++++++++---- volumes.c | 5 +++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ctree.h b/ctree.h index fa73c4a..92c6ad3 100644 --- a/ctree.h +++ b/ctree.h @@ -19,6 +19,8 @@ #ifndef __BTRFS__ #define __BTRFS__ +#include <stdint.h> + #if BTRFS_FLAT_INCLUDES #include "list.h" #include "kerncompat.h" @@ -1191,13 +1193,17 @@ struct btrfs_root { static inline u##bits btrfs_##name(const struct extent_buffer *eb) \ { \ const struct btrfs_header *h = (struct btrfs_header *)eb->data; \ - return le##bits##_to_cpu(h->member); \ + uint##bits##_t t; \ + memcpy(&t, &h->member, sizeof(h->member)); \ + return le##bits##_to_cpu(t); \ } \ static inline void btrfs_set_##name(struct extent_buffer *eb, \ u##bits val) \ { \ struct btrfs_header *h = (struct btrfs_header *)eb->data; \ - h->member = cpu_to_le##bits(val); \ + uint##bits##_t t; \ + t = cpu_to_le##bits(val); \ + memcpy(&h->member, &t, sizeof(h->member)); \ } #define BTRFS_SETGET_FUNCS(name, type, member, bits) \ @@ -1219,11 +1225,15 @@ static inline void btrfs_set_##name(struct extent_buffer *eb, \ #define BTRFS_SETGET_STACK_FUNCS(name, type, member, bits) \ static inline u##bits btrfs_##name(const type *s) \ { \ - return le##bits##_to_cpu(s->member); \ + uint##bits##_t t; \ + memcpy(&t, &s->member, sizeof(s->member)); \ + return le##bits##_to_cpu(t); \ } \ static inline void btrfs_set_##name(type *s, u##bits val) \ { \ - s->member = cpu_to_le##bits(val); \ + uint##bits##_t t; \ + t = cpu_to_le##bits(val); \ + memcpy(&s->member, &t, sizeof(s->member)); \ } BTRFS_SETGET_FUNCS(device_type, struct btrfs_dev_item, type, 64); diff --git a/volumes.c b/volumes.c index 388c94e..102380b 100644 --- a/volumes.c +++ b/volumes.c @@ -472,10 +472,11 @@ static int find_next_chunk(struct btrfs_root *root, u64 objectid, u64 *offset) if (found_key.objectid != objectid) *offset = 0; else { + u64 t; chunk = btrfs_item_ptr(path->nodes[0], path->slots[0], struct btrfs_chunk); - *offset = found_key.offset + - btrfs_chunk_length(path->nodes[0], chunk); + t = found_key.offset + btrfs_chunk_length(path->nodes[0], chunk); + memcpy(offset, &t, sizeof(found_key.offset)); } } ret = 0; -- 2.1.0.rc1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/4] Fixing unaligned memory accesses. 2014-09-21 1:01 ` [PATCH 3/4] Fixing unaligned memory accesses Dimitri John Ledkov @ 2014-09-22 13:03 ` David Sterba 0 siblings, 0 replies; 9+ messages in thread From: David Sterba @ 2014-09-22 13:03 UTC (permalink / raw) To: Dimitri John Ledkov; +Cc: linux-btrfs, Shawn Landen On Sun, Sep 21, 2014 at 02:01:21AM +0100, Dimitri John Ledkov wrote: > From: Shawn Landen <shawnlandden@gmail.com> > > Bug-Debian: http://bugs.debian.org/656955 The bug seems old (2012) and agains 0.19. We've fixed a few unaligned access bugs in the meantime. Can you please retest with 3.16? > --- a/ctree.h > +++ b/ctree.h > @@ -19,6 +19,8 @@ > #ifndef __BTRFS__ > #define __BTRFS__ > > +#include <stdint.h> > + > #if BTRFS_FLAT_INCLUDES > #include "list.h" > #include "kerncompat.h" > @@ -1191,13 +1193,17 @@ struct btrfs_root { > static inline u##bits btrfs_##name(const struct extent_buffer *eb) \ > { \ > const struct btrfs_header *h = (struct btrfs_header *)eb->data; \ > - return le##bits##_to_cpu(h->member); \ > + uint##bits##_t t; \ > + memcpy(&t, &h->member, sizeof(h->member)); \ > + return le##bits##_to_cpu(t); \ The change to memcpy is safe, the compiler is smart enough to not emit any memcpy call for x86_64 and there's no change to the leXX_to_cpu macros. However, I'd like to check first if this is really necessary due to the old version in the bugreport. I'd prefer using the u8/.../u64 types instead of the stdint.h ones, for sake of consistency with the rest of the codebase. > --- a/volumes.c > +++ b/volumes.c > @@ -472,10 +472,11 @@ static int find_next_chunk(struct btrfs_root *root, u64 objectid, u64 *offset) > if (found_key.objectid != objectid) > *offset = 0; > else { > + u64 t; > chunk = btrfs_item_ptr(path->nodes[0], path->slots[0], > struct btrfs_chunk); > - *offset = found_key.offset + > - btrfs_chunk_length(path->nodes[0], chunk); > + t = found_key.offset + btrfs_chunk_length(path->nodes[0], chunk); > + memcpy(offset, &t, sizeof(found_key.offset)); That's not enough, there are more direct assignments to *offset in that function. The preferred way is to add 'put_unaligned' helper into kerncompat.h and use it. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 4/4] Default to acting like fsck. 2014-09-21 1:01 [PATCH 1/4] Properly cast to avoid compiler warnings, fixes FTBFS on alpha and ia64 Dimitri John Ledkov 2014-09-21 1:01 ` [PATCH 2/4] Fixes FTBFS with --no-add-needed Dimitri John Ledkov 2014-09-21 1:01 ` [PATCH 3/4] Fixing unaligned memory accesses Dimitri John Ledkov @ 2014-09-21 1:01 ` Dimitri John Ledkov 2014-09-21 12:59 ` Tobias Geerinckx-Rice 2 siblings, 1 reply; 9+ messages in thread From: Dimitri John Ledkov @ 2014-09-21 1:01 UTC (permalink / raw) To: linux-btrfs; +Cc: Dimitri John Ledkov Inspect arguments, if we are not called as btrfs, then assume we are called to act like fsck. Bug-Debian: http://bugs.debian.org/712078 Signed-off-by: Dimitri John Ledkov <xnox@debian.org> --- btrfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/btrfs.c b/btrfs.c index e83349c..e8a87ac 100644 --- a/btrfs.c +++ b/btrfs.c @@ -222,7 +222,7 @@ int main(int argc, char **argv) else bname = argv[0]; - if (!strcmp(bname, "btrfsck")) { + if (strcmp(bname, "btrfs") != 0) { argv[0] = "check"; } else { argc--; -- 2.1.0.rc1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] Default to acting like fsck. 2014-09-21 1:01 ` [PATCH 4/4] Default to acting like fsck Dimitri John Ledkov @ 2014-09-21 12:59 ` Tobias Geerinckx-Rice 2014-09-22 8:58 ` Dimitri John Ledkov 0 siblings, 1 reply; 9+ messages in thread From: Tobias Geerinckx-Rice @ 2014-09-21 12:59 UTC (permalink / raw) To: Dimitri John Ledkov; +Cc: linux-btrfs On 21 September 2014 03:01, Dimitri John Ledkov <xnox@debian.org> wrote: > > Inspect arguments, if we are not called as btrfs, then assume we are > called to act like fsck. [...] > - if (!strcmp(bname, "btrfsck")) { > + if (strcmp(bname, "btrfs") != 0) { That's assuming a lot. Silently (!) breaking people's btrfs-3.15_patched-DontRandomlyPanicV2 is a recipe for needless hair-pulling. Is there a reason for not using something less like strstr(bname, "fsck") that I am missing? Regards, T G-R ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] Default to acting like fsck. 2014-09-21 12:59 ` Tobias Geerinckx-Rice @ 2014-09-22 8:58 ` Dimitri John Ledkov 2014-09-22 13:13 ` David Sterba 0 siblings, 1 reply; 9+ messages in thread From: Dimitri John Ledkov @ 2014-09-22 8:58 UTC (permalink / raw) To: Tobias Geerinckx-Rice; +Cc: linux-btrfs On 21 September 2014 13:59, Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com> wrote: > On 21 September 2014 03:01, Dimitri John Ledkov <xnox@debian.org> wrote: >> >> Inspect arguments, if we are not called as btrfs, then assume we are >> called to act like fsck. > [...] >> - if (!strcmp(bname, "btrfsck")) { >> + if (strcmp(bname, "btrfs") != 0) { > > That's assuming a lot. > > Silently (!) breaking people's btrfs-3.15_patched-DontRandomlyPanicV2 > is a recipe for needless hair-pulling. Is there a reason for not using > something less like strstr(bname, "fsck") that I am missing? > Quite. This is verbatim patch as I have currently applied in Debian packaging, and it was a fast fix to prevent breakage we had at one point. Indeed using "strstr(bname, "fsck")" would be better and sufficient to resolve the problem we encountered (specifically fsck.btrfs -> btrfs not acting like btrfs). Also using strstr, would fix btrfsck.my-build to act like fsck tool. I'll update this one patch. -- Regards, Dimitri. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] Default to acting like fsck. 2014-09-22 8:58 ` Dimitri John Ledkov @ 2014-09-22 13:13 ` David Sterba 0 siblings, 0 replies; 9+ messages in thread From: David Sterba @ 2014-09-22 13:13 UTC (permalink / raw) To: Dimitri John Ledkov; +Cc: Tobias Geerinckx-Rice, linux-btrfs On Mon, Sep 22, 2014 at 09:58:34AM +0100, Dimitri John Ledkov wrote: > On 21 September 2014 13:59, Tobias Geerinckx-Rice > <tobias.geerinckx.rice@gmail.com> wrote: > > On 21 September 2014 03:01, Dimitri John Ledkov <xnox@debian.org> wrote: > >> > >> Inspect arguments, if we are not called as btrfs, then assume we are > >> called to act like fsck. > > [...] > >> - if (!strcmp(bname, "btrfsck")) { > >> + if (strcmp(bname, "btrfs") != 0) { > > > > That's assuming a lot. > > > > Silently (!) breaking people's btrfs-3.15_patched-DontRandomlyPanicV2 > > is a recipe for needless hair-pulling. Is there a reason for not using > > something less like strstr(bname, "fsck") that I am missing? > > > > Quite. This is verbatim patch as I have currently applied in Debian > packaging, and it was a fast fix to prevent breakage we had at one > point. > > Indeed using "strstr(bname, "fsck")" would be better and sufficient to > resolve the problem we encountered (specifically fsck.btrfs -> btrfs > not acting like btrfs). Also using strstr, would fix btrfsck.my-build > to act like fsck tool. The intention was to provide backward compatibility shortcut for 'btrfsck' -> 'btrfs check' and nothing else. The referenced bug is again for 0.19 but there's an upstream-shipped stub fsck.btrfs (since 3.14) that should avoid any packaging tricks. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-09-22 13:13 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-09-21 1:01 [PATCH 1/4] Properly cast to avoid compiler warnings, fixes FTBFS on alpha and ia64 Dimitri John Ledkov 2014-09-21 1:01 ` [PATCH 2/4] Fixes FTBFS with --no-add-needed Dimitri John Ledkov 2014-09-22 12:23 ` David Sterba 2014-09-21 1:01 ` [PATCH 3/4] Fixing unaligned memory accesses Dimitri John Ledkov 2014-09-22 13:03 ` David Sterba 2014-09-21 1:01 ` [PATCH 4/4] Default to acting like fsck Dimitri John Ledkov 2014-09-21 12:59 ` Tobias Geerinckx-Rice 2014-09-22 8:58 ` Dimitri John Ledkov 2014-09-22 13:13 ` David Sterba
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).