On Thu, Sep 25, 2014 at 06:28:14PM +0800, Eryu Guan wrote:
device replace could fail due to another running scrub process, but this
failure doesn't get returned to userspace.
The following steps could reproduce this issue
mkfs -t btrfs -f /dev/sdb1 /dev/sdb2
mount /dev/sdb1
On Thu, Oct 02, 2014 at 07:22:09AM +0800, Anand Jain wrote:
(I am unable to reproduce the issue, tried to go back with progs versions
but still the same. So as of now this code remains untested, suggest to
wait till we have a reproducible test case).
Here is a test case which says it all..
Thanks.
Anand
On 10/10/2014 03:39 PM, David Sterba wrote:
On Thu, Oct 02, 2014 at 07:22:09AM +0800, Anand Jain wrote:
(I am unable to reproduce the issue, tried to go back with progs versions
but still the same. So as of now this code remains untested, suggest to
wait till we have a
To avoid duplicating this double filemap_fdatawrite_range() call for
inodes with async extents (compressed writes) so often.
Signed-off-by: Filipe Manana fdman...@suse.com
---
V2: Pass right arguments to the new helper. Missed unstaged changes.
fs/btrfs/ctree.h| 1 +
fs/btrfs/file.c
On Fri, Oct 10, 2014 at 3:39 AM, Qu Wenruo quwen...@cn.fujitsu.com wrote:
Original Message
Subject: Re: [PATCH] btrfs: Fix and enhance merge_extent_mapping() to insert
best fitted extent map
From: Filipe David Manana fdman...@gmail.com
To: Qu Wenruo quwen...@cn.fujitsu.com
On Wed, Oct 08, 2014 at 05:42:28PM +0800, Eryu Guan wrote:
If BTRFS_IOC_DEV_REPLACE ioctl failed, there's no result returned to
fill args.result, it doesn't make sense to report this internal result
to user.
And the arg has been initialized with 0, the result is always 0, which
is
On Fri, 10 Oct 2014 15:13:31 +0800, Eryu Guan wrote:
On Thu, Sep 25, 2014 at 06:28:14PM +0800, Eryu Guan wrote:
device replace could fail due to another running scrub process, but this
failure doesn't get returned to userspace.
The following steps could reproduce this issue
mkfs -t
On Thu, Oct 02, 2014 at 02:50:39PM -0400, Josef Bacik wrote:
+static int repair_inode_backrefs(struct btrfs_root *root,
+ struct inode_record *rec,
+ struct cache_tree *inode_cache)
+{
+ struct btrfs_trans_handle *trans;
+
If cow_file_range_inline() failed, when called from compress_file_range(),
we were tagging the locked page for writeback, end its writeback and unlock it,
but not marking it with an error nor setting AS_EIO in inode's mapping flags.
This made it impossible for a caller of filemap_fdatawrite_range
I'm redoing this patch a bit so don't take it yet. Thanks,
Josef
David Sterba dste...@suse.cz wrote:
On Thu, Oct 02, 2014 at 02:50:39PM -0400, Josef Bacik wrote:
+static int repair_inode_backrefs(struct btrfs_root *root,
+ struct inode_record *rec,
+
On 10/10/2014 03:58, Chris Murphy wrote:
* mount -o recovery
Enable autorecovery attempts if a bad tree root is found at mount
time.
I'm confused why it's not the default yet. Maybe it's continuing to evolve at a
pace that suggests something could sneak in that makes things worse?
On Fri, 10 Oct 2014 12:53:38 +0200
Bob Marley bobmar...@shiftmail.org wrote:
On 10/10/2014 03:58, Chris Murphy wrote:
* mount -o recovery
Enable autorecovery attempts if a bad tree root is found at mount
time.
I'm confused why it's not the default yet. Maybe it's continuing to
On Fri, Oct 10, 2014 at 10:20:23AM +0200, David Sterba wrote:
On Wed, Oct 08, 2014 at 05:42:28PM +0800, Eryu Guan wrote:
If BTRFS_IOC_DEV_REPLACE ioctl failed, there's no result returned to
fill args.result, it doesn't make sense to report this internal result
to user.
And the arg has
On 10/10/2014 12:59, Roman Mamedov wrote:
On Fri, 10 Oct 2014 12:53:38 +0200
Bob Marley bobmar...@shiftmail.org wrote:
On 10/10/2014 03:58, Chris Murphy wrote:
* mount -o recovery
Enable autorecovery attempts if a bad tree root is found at mount
time.
I'm confused why it's not the
Thank you very much, Duncan and Chris. Especially to Duncan, for his
detailed reply and further suggestions. I will try to follow your
advice as best I can. I am old, but I'm still learning!
Tim
--
To unsubscribe from this list: send the line unsubscribe linux-btrfs in
the body of a message to
If BTRFS_IOC_DEV_REPLACE ioctl failed, args.result usually won't be
updated by the ioctl.
And the arg has been initialized with 0, the result is always 0, which
is BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR, and the resulting error
message looks confusing:
ERROR: ioctl(DEV_REPLACE_START) failed on
Hello,
I have reproduced a problem with Btrfs integrity and balance using latest
btrfs kernel,it is very easy to reproduce:
With mount option “check_int”, and run xfstests/btrfs/ tests, below test could
definitely
reproduce problem:
./check tests/btrfs/014
5.122248] Written block @25800343552
size of @btrfsic_state needs more than 2M, it is very likely to
fail allocating memory using kzalloc(). see following mesage:
[91428.902148] Call Trace:
[816f6e0f] dump_stack+0x4d/0x66
[811b1c7f] warn_alloc_failed+0xff/0x170
[811b66e1] __alloc_pages_nodemask+0x951/0xc30
On Oct 10, 2014, at 6:53 AM, Bob Marley bobmar...@shiftmail.org wrote:
On 10/10/2014 03:58, Chris Murphy wrote:
* mount -o recovery
Enable autorecovery attempts if a bad tree root is found at mount
time.
I'm confused why it's not the default yet. Maybe it's continuing to evolve
at
If -o recovery is necessary, then you're either running into a btrfs
bug, or your hardware is lying about when it has actually written
things to disk.
The first case isn't unheard of, although far less common than it used
to be, and it should continue to improve with time.
In the second case,
Add uid, gid, rdev and flags to btrfs_print_leaf.
Signed-off-by: David Sterba dste...@suse.cz
---
print-tree.c | 8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/print-tree.c b/print-tree.c
index 7df5798e539c..70a7acc632f2 100644
--- a/print-tree.c
+++ b/print-tree.c
@@
Signed-off-by: David Sterba dste...@suse.cz
---
Documentation/btrfs-balance.txt | 5 +
1 file changed, 5 insertions(+)
diff --git a/Documentation/btrfs-balance.txt b/Documentation/btrfs-balance.txt
index 89fd44901a9d..e1ad6511571c 100644
--- a/Documentation/btrfs-balance.txt
+++
On 10/10/2014 16:37, Chris Murphy wrote:
The fail safe behavior is to treat the known good tree root as the default tree
root, and bypass the bad tree root if it cannot be repaired, so that the volume
can be mounted with default mount options (i.e. the ones in fstab). Otherwise
it's a
On 2014-10-10 19:43, Bob Marley wrote:
On 10/10/2014 16:37, Chris Murphy wrote:
The fail safe behavior is to treat the known good tree root as the
default tree root, and bypass the bad tree root if it cannot be
repaired, so that the volume can be mounted with default mount options
(i.e. the
On 2014-10-10 13:43, Bob Marley wrote:
On 10/10/2014 16:37, Chris Murphy wrote:
The fail safe behavior is to treat the known good tree root as the
default tree root, and bypass the bad tree root if it cannot be
repaired, so that the volume can be mounted with default mount options
(i.e. the
If we have an inode backref entry then we know enough to add back a missing dir
index. When messing with the inode backrefs we need to do all of that first
before we process the inode recs themselves as we may clear errors on the inode
recs as we fix the directory indexes. This adds the
This is the culmination of two weeks worth of work with Jaap Pieroen and his
broekn file system. This pulls back a few things from the kernel in order to
support the dir item stuff, and the rbtree stuff to fix a weird bug we were
seeing. There will be more test images coming, but this is what I
We may run across dir indexes that are corrupt in such a way that it makes them
useless, such as having a bad location key or a bad name. In this case we can
just delete dir indexes that don't show up properly and then re-create what we
need. When we delete dir indexes however we need to restart
If we have a corrupt block that multiple snapshots point to we will only fix the
guy who originally pointed to the block, and then simply loop forever because we
keep finding the same bad block. So instead lookup all roots that point to this
block, and then search down to the block for each root
If we hid a corrupt block that we fix and we restart the fsck loop you will get
lots of noise about duplicate block groups and such. This is because we don't
clear the block group and chunk cache when we do this restart. This patch fixes
that, which is a little tricky since the structs are
If our location is bogus in our dir item we were just skipping the thing.
However in this case we want to just delete the dir index, so create a dummy
inode rec using BTRFS_MULTIPLE_OBJECTIDS and just add every backref we find to
the list so we know to straight up delete all of these items.
If we change something while scanning fs-roots we need to redo our search so
that we get valid root items and have valid root cache. Thanks,
Signed-off-by: Josef Bacik jba...@fb.com
---
cmds-check.c | 10 --
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/cmds-check.c
In order to test the dir index corruption fixing patches in fsck we need to add
functionality to btrfs-corrupt-block to corrupt dir item fields. Thanks,
Signed-off-by: Josef Bacik jba...@fb.com
---
btrfs-corrupt-block.c | 103 +-
1 file changed,
Sometimes we have a dir index and an inode ref that don't agree on the index.
In this case just assume that the inode ref is the ultimate authority on the
subject and delete the dir index. This means we have to not reset index if we
find a mismatched inode ref to make sure we delete the right dir
This patch pulls back backref.c, adds a couple of helpers everywhere that it
needs, and cleans up backref.c to fit in btrfs-progs. Thanks,
Signed-off-by: Josef Bacik jba...@fb.com
---
Makefile |2 +-
backref.c| 1651 ++
While debugging a broken fs we were seeing hangs in the rb_erase loops. The
rbtree was simple and wasn't corrupted so it appeared to be a bug in our rbtree
library. Updating to the kernels latest rbtree code made the infinite loop go
away, so pull it back. Thanks,
Signed-off-by: Josef Bacik
These were added to deal with duplicated functionality within btrfs-progs, but
we specifically copied rbtree.c from the kernel, so move these functions out
into their own file. This will make it easier to keep rbtree.c in sync.
Thanks,
Signed-off-by: Josef Bacik jba...@fb.com
---
Makefile
On 10/10/14 2:35 PM, Austin S Hemmelgarn wrote:
On 2014-10-10 13:43, Bob Marley wrote:
On 10/10/2014 16:37, Chris Murphy wrote:
The fail safe behavior is to treat the known good tree root as
the default tree root, and bypass the bad tree root if it cannot
be repaired, so that the volume can
Hi Linus,
Please pull my for-linus branch:
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
This is based on 3.17-rc5 because that's when I forked off for -next,
but I've been testing it against linux-next or 3.17 for a while now.
The largest set of changes here
39 matches
Mail list logo