off-by: Alexandre Oliva <ol...@gnu.org>
---
cmds-check.c |5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/cmds-check.c b/cmds-check.c
index 0165fba..e563354 100644
--- a/cmds-check.c
+++ b/cmds-check.c
@@ -5208,9 +5208,10 @@ static int process_extent_item(struct btrfs_r
_root, ret);*/
goto out;
} else {
btrfs_abort_transaction(trans, extent_root, ret);
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board m
at FreeNode,
so the horse was out of the barn already :-(
I hope this helps,
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist|Red Hat
[dropping rs...@lists.samba.org, it rejects posts from non-subscribers;
refer to https://bugzilla.samba.org/show_bug.cgi?id=10925 instead]
On Nov 6, 2014, Alexandre Oliva ol...@gnu.org wrote:
What makes the problem visible is that btrfs appears to have a race in
its handling of xattr
code chooses a magnitude
most suitable to present the size in a human-friendly way. I'd be happy
to drop the long option, to follow GNU df's practice: there's no long
option (without arguments) equivalent to -k there.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must
are the patches.
repair: remove recowed entry from the to-recow list
From: Alexandre Oliva ol...@gnu.org
If we attempt to repair a filesystem with metadata blocks that need
recowing, we'll get into an infinite loop repeatedly recowing the
first entry in the list, without ever removing it from
Introduce support for df to print sizes in KiB, easy to extend to other
bases.
The man page is also updated and fixed in that it made it seem like
multiple paths were accepted.
Signed-off-by: Alexandre Oliva ol...@gnu.org
---
Documentation/btrfs-filesystem.txt |4 +++-
cmds-filesystem.c
it (I don't have a sure way
to trigger csum errors :-), but AFAICT the objectid I've added is the
same number that one can pass to mount as subvolid, or look up in the
btrfs subvol list table.
Signed-off-by: Alexandre Oliva ol...@gnu.org
---
fs/btrfs/compression.c |8 +---
fs/btrfs/inode.c
.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer
--
To unsubscribe from this list: send
: Alexandre Oliva ol...@gnu.org
This patch is WIP, but it has enabled a raid6 filesystem on a bad disk
(frequent read failures at random blocks) to work flawlessly for a
couple of weeks, instead of hanging the entire filesystem upon the
first read error.
One of the problems is that we have
to
be cleaned up in background. If we had some primitive to unlink an
entire subtree and clean it up in background we could use that.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF
.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer
--
To unsubscribe from this list: send the line
is supposed to inform the upper layer about what
it could read by updating the bio_vec bits in precisely the observed
way.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin
On Apr 4, 2013, Alexandre Oliva ol...@gnu.org wrote:
I've been trying to figure out the btrfs I/O stack to try to understand
why, sometimes (but not always), after a failure to read a (data
non-replicated) block from the disk, the file being accessed becomes
permanently locked
(no further related messages)
Be verbose about the path followed after an I/O error
From: Alexandre Oliva lxol...@fsfla.org
---
fs/btrfs/disk-io.c | 22 --
fs/btrfs/extent_io.c |6 ++
fs/btrfs/volumes.c | 31 +--
3 files changed
for the patch, it's run flawlessly since I started gradually
rolling it out onto my ceph OSDs on Monday! Ship it! :-)
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America
++;
}
} else if (!quiet)
std::cout use --repair to repair std::endl;
}
}
}
return errors;
}
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board
On Mar 22, 2013, David Sterba dste...@suse.cz wrote:
I've reproduced this without compression, with autodefrag on.
I don't have autodefrag on, unless it's enabled by default on 3.8.3 or
on the for-linus tree.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must
the test program at that.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer
--
To unsubscribe
On Mar 19, 2013, Alexandre Oliva ol...@gnu.org wrote:
On Mar 19, 2013, Alexandre Oliva ol...@gnu.org wrote:
that is being processed inside the snapshot.
This doesn't explain why the master database occasionally gets similarly
corrupted, does it?
Actually, scratch this bit for now. I don't
if (system(cmp snaptest./??)) {
printf (\ncmp error: %s\n, strerror (errno));
break;
}
#endif
}
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free
object's Sync
member function in the test; this would bring fdatasync and msync calls
into the picture, that would otherwise be left entirely out of the test.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free
On Mar 19, 2013, Sage Weil s...@inktank.com wrote:
There is a set of unit tests in the leveldb source tree that ought to do
the trick:
git clone https://code.google.com/p/leveldb/
But these don't create btrfs snapshots.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org
On Mar 19, 2013, Alexandre Oliva ol...@gnu.org wrote:
that is being processed inside the snapshot.
This doesn't explain why the master database occasionally gets similarly
corrupted, does it?
Actually, scratch this bit for now. I don't really have proof that the
master database actually
that the problem is indeed in btrfs?
TIA,
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer
check, the problem must be in btrfs.
On Mar 18, 2013, Alexandre Oliva ol...@gnu.org wrote:
I've scripted regular checks of osd snapshots, saving the
last-known-good database along with the first one that displays the
corruption. Studying about two dozen failures over the weekend, that
took
out after each db block. No
btrfs CRC errors are reported in this process.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist
On Feb 23, 2013, Alexandre Oliva ol...@gnu.org wrote:
On Feb 22, 2013, Josef Bacik jba...@fusionio.com wrote:
So I understand what you are getting at, but I think you are doing it wrong.
If
we're calling with CHUNK_ALLOC_FORCE, but somebody has already started to
allocate
making sure a chunk is actually
allocated, instead of doing this flag shuffling we should just do
if (space_info-chunk_alloc) {
spin_unlock(space_info-lock);
wait_event(!space_info-chunk_alloc);
return 0;
}
Sorry, I don't follow.
--
Alexandre Oliva, freedom fighterhttp
On Feb 21, 2013, Alexandre Oliva ol...@gnu.org wrote:
What I saw in that function also happens to explain why in some cases I
see filesystems allocate a huge number of chunks that remain unused
(leading to the scenario above, of not having more chunks to allocate).
It happens for data
;
+ } else if (ret == -ENOSPC) {
+ return 1;
}
+
btrfs_delalloc_release_metadata(inode, end + 1 - start);
btrfs_drop_extent_cache(inode, start, aligned_end - 1, 0);
return 0;
--
1.7.7.6
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish
Sep 17 00:00:00 2001
From: Alexandre Oliva lxol...@fsfla.org
Date: Mon, 12 Dec 2011 04:33:33 -0200
Subject: [PATCH] Btrfs: delay block group's free space test within allocator
If a block group has a cluster, we don't want to test its free space
when the cluster has taken an unknown amount of free
allocating a new chunk.
Patch 16 makes sure we don't jump ahead during LOOP_CACHING_WAIT, so we
won't get new chunks unless they can really help us keep the system
going.
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer
--
To unsubscribe from this list: send the line
---
fs/btrfs/extent-tree.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 5d86877..bc0f13d 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -5304,7 +5304,7 @@ alloc:
/*
of how
we came about that scenario.
Patches 14, 17, 18 and 20 were posted before, and I'm probably dropping
them from future patchsets unless I find them to be still useful.
Alexandre Oliva (20):
Btrfs: enable removal of second disk with raid1 metadata
Btrfs: initialize new bitmaps' list
new ones in a different block group.
This patch tries to allocate from an existing cluster regardless of its
block group, and doesn't switch to that group, instead proceeding to
try to allocate a cluster from the group it was iterating before the
attempt.
Signed-off-by: Alexandre Oliva ol
We store the allocation start and length twice in ins, once right
after the other, but with intervening calls that may prevent the
duplicate from being optimized out by the compiler. Remove one of the
assignments.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/extent-tree.c
cause pointless searches for large contiguous
groups, and even cause clusters that do not meet the density
requirements to be set up.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/free-space-cache.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/fs/btrfs
---
fs/btrfs/free-space-cache.c | 10 ++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index 953f7dd..0151274 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -2316,6 +2316,16 @@
With -o mincluster, we save the location of the last successful
allocation, so as to emulate some of the cluster allocation logic
(though not non-bitmap preference) without actually going through the
exercise of allocating clusters.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs
Experimental patch to be able to compact only the metadata after
excessive block groups are created. I guess it should be implemented
as a balance option rather than a separate ioctl, but this was good
enough for me to try it.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs
Instead of starting at zero (offset is always zero), request a cluster
starting at search_start, that denotes the beginning of the current
block group.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/extent-tree.c |6 ++
1 files changed, 2 insertions(+), 4 deletions
lock, and
before the point in which we now look at flags to decide whether or
not we should keep the free space buffer.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/extent-tree.c | 24 +---
1 files changed, 13 insertions(+), 11 deletions(-)
diff --git
If we don't have a cluster, don't bother trying to allocate from it,
jumping right away to the attempt to allocate a new cluster.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/extent-tree.c |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs
This patch adds several debug messages that helped me track down
problems in the cluster allocation logic. All the messages are
disabled by default, so that they're optimized away, but enabling the
commented-out settings of debug brings some helpful messages.
Signed-off-by: Alexandre Oliva ol
that we'll iterate
over at each metadata block request.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/free-space-cache.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index 6e5b7e4..ff179b1
Activate various messages that help track down clustered allocation
problems, that are disabled and optimized out by default.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/extent-tree.c |6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/btrfs
If we reach LOOP_NO_EMPTY_SIZE, we won't even try to use a cluster that
others might have set up. Odds are that there won't be one, but if
someone else succeeded in setting it up, we might as well use it, even
if we don't try to set up a cluster again.
Signed-off-by: Alexandre Oliva ol
Enable removal of a second disk even if that requires conversion of
metadata from raid1 to dup, but not when data would lose replication.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/volumes.c |6 +-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/fs
btrfs filesystem balance sometimes fails on corrupted filesystems, but
without any information that explains what the failure was to help
track down the problem. This patch adds logging for nearly all error
conditions that may cause relocation to fail.
Signed-off-by: Alexandre Oliva ol
in the NO_EMPTY_SIZE loop do we attempt an unclustered
allocation, and by then we'll have zeroed the cluster size, so this
patch won't stop us from using the block group as a last resort.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/extent-tree.c |2 +-
1 files changed, 1 insertions
Bitmap lists serve two purposes: recording the order of loading/saving
on-disk free space caches, and setting up a list of bitmaps to try to
set up a cluster. Complain if a list is unexpectedly busy.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/free-space-cache.c |7
Introduce -o nocluster to disable the use of clusters for extent
allocation, and -o cluster to reverse it.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/ctree.h |3 ++-
fs/btrfs/extent-tree.c |2 +-
fs/btrfs/super.c | 16 ++--
3 files
Parameterize clusters on minimum total size, minimum chunk size and
minimum contiguous size for at least one chunk, without limits on
cluster, window or gap sizes. Don't tolerate any fragmentation for
SSD_SPREAD; accept it for metadata, but try to keep data dense.
Signed-off-by: Alexandre Oliva
lock, and
before the point in which we now look at flags to decide whether or
not we should keep the free space buffer.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/extent-tree.c | 26 ++
1 files changed, 14 insertions(+), 12 deletions(-)
diff
On Nov 11, 2011, Chris Mason chris.ma...@oracle.com wrote:
On Thu, Nov 10, 2011 at 05:32:48PM -0200, Alexandre Oliva wrote:
Instead of preventing the removal of devices that would render existing
raid10 or raid1 impossible, warn but go ahead with it; the rebalancing
code is smart enough
On Nov 10, 2011, Alexandre Oliva ol...@lsd.ic.unicamp.br wrote:
These are patches I posted before, except these are based on cmason's
for-linus. Reposting at josef's request.
Reposting again, at josef's request, this time consolidating the 3
patches into one.
From
2bbc4ae372f8ca31701db8ed0cf8e15edf76311e Mon Sep 17 00:00:00 2001
From: Alexandre Oliva lxol...@fsfla.org
Date: Wed, 16 Nov 2011 01:25:06 -0200
Subject: [PATCH 6/8] Btrfs: report reason for failed relocation
btrfs filesystem balance sometimes fails on corrupted filesystems, but
without any information
On Nov 15, 2011, Ilya Dryomov idryo...@gmail.com wrote:
And the exact command to mimic your patch is
btrfs fi restripe start -m mount point
Thanks. I wasn't aware of the restripe patch when I wrote this Quick
Hack (TM).
--
Alexandre Oliva, freedom fighterhttp://FSFLA.org/~lxoliva/
You
before the remount. Please keep
that in mind before merging the patch.
From a3323c03f1b3d2cfeb4905268d117426232d4a3b Mon Sep 17 00:00:00 2001
From: Alexandre Oliva lxol...@fsfla.org
Date: Sat, 29 Oct 2011 02:20:55 -0200
Subject: [PATCH 4/8] Disable clustered allocation with -o nocluster
Introduce -o
?
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/volumes.c | 12
1 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 4d5b29f..507afca 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -1281,18
a
separate ioctl, but this was good enough for me to try it.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
fs/btrfs/ioctl.c |2 ++
fs/btrfs/ioctl.h |3 +++
fs/btrfs/volumes.c | 33 -
fs/btrfs/volumes.h |1 +
4 files changed, 34 insertions
On Nov 10, 2011, Alexandre Oliva ol...@lsd.ic.unicamp.br wrote:
Experimental patch to be able to compact only the metadata after
clustered allocation allocated lots of unnecessary metadata block
groups. It's also useful to measure performance differences between
-o cluster and -o nocluster
These are patches I posted before, except these are based on cmason's
for-linus. Reposting at josef's request.
From c8036334e5a033a6ca0963e8fb716d03b1945158 Mon Sep 17 00:00:00 2001
From: Alexandre Oliva lxol...@fsfla.org
Date: Fri, 14 Oct 2011 12:10:36 -0300
Subject: [PATCH 1/8] Revamp btrfs
c16a9e53e41e7616e4498534eea25ca1f396d7b4 Mon Sep 17 00:00:00 2001
From: Alexandre Oliva lxol...@fsfla.org
Date: Thu, 10 Nov 2011 20:55:40 -0200
Subject: [PATCH 9/9] Add -o mincluster option.
If this option is enabled, save the location of the last successful
allocation, so as to emulate some of the cluster
Hi, Gustavo,
On Nov 1, 2011, Gustavo Sverzut Barbieri barbi...@gmail.com wrote:
btrfs csum failed ino 2957021 extent 85041815552 csum 667310679
wanted 0 mirror 0
Is there any way to recover it? :-S
Did you try mounting without data checksums?
--
Alexandre Oliva, freedom fighter
On Oct 31, 2011, David Sterba d...@jikos.cz wrote:
On Mon, Oct 31, 2011 at 02:19:18AM -0200, Alexandre Oliva wrote:
On Oct 29, 2011, Chris Mason chris.ma...@oracle.com wrote:
The last one isn't a bad idea, but please do make a real mount option
for it ;)
Like this?
@@ -195,6 +195,7
On Oct 29, 2011, Chris Mason chris.ma...@oracle.com wrote:
The last one isn't a bad idea, but please do make a real mount option
for it ;)
Like this?
From af086e7b88637be5c9806181a1d70db9c645cb50 Mon Sep 17 00:00:00 2001
From: Alexandre Oliva lxol...@fsfla.org
Date: Sat, 29 Oct 2011 02:20:55
apply cleanly on 3.1).
---BeginMessage---
Parameterized clusters on minimum total size and minimum chunk size,
without an upper bound. Don't tolerate fragmentation for SSD_SPREAD;
accept some fragmentation for metadata but try to keep data dense.
Signed-off-by: Alexandre Oliva ol
Here's some additional information and work-arounds.
On Aug 7, 2011, Alexandre Oliva ol...@lsd.ic.unicamp.br wrote:
A bit of investigation showed that max_hw_sectors for the USB disk was
120, much lower than the internal SATA and PATA disks.
FWIW, overriding /sys/class/block/sd*/queue
On Aug 7, 2011, Alexandre Oliva ol...@lsd.ic.unicamp.br wrote:
tl;dr version: 3.0 produces “bio too big” dmesg entries and silently
corrupts data in “meta-raid1/data-single” configurations on disks with
different max_hw_sectors, where 2.6.38 worked fine.
FWIW, I just got the same problem
On Aug 7, 2011, Alexandre Oliva ol...@lsd.ic.unicamp.br wrote:
2. Removing a partition from the filesystem (say, the external disk)
didn't relocate “single” block groups as such to other disks, as
expected.
/me reads some code and resets expectations about RAID0 in btrfs
On Aug 7, 2011, Alexandre Oliva ol...@lsd.ic.unicamp.br wrote:
in very much the same way that it appears to be impossible to go
back from RAID1 to DUP metadata once you temporarily add a second disk,
and any metadata block group happens to be allocated before you remove
it (why couldn't
verbosity to btrfsck so that we can manually recover from a failure
to update the roots.
Signed-off-by: Alexandre Oliva ol...@lsd.ic.unicamp.br
---
disk-io.c | 41 +
volumes.c |3 +++
2 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/disk
75 matches
Mail list logo