Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[GIT PULL] Btrfs fixes

10 views
Skip to first unread message

Chris Mason

unread,
Nov 21, 2011, 8:30:48 PM11/21/11
to Linus Torvalds, linux-btrfs, LKML
Hi everyone,

The for-linus branch of the linux-btrfs repo has some important fixes:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus

The most important in the bunch fixes the btrfs cache flushing. This
one probably explains many of the corruptions that have been reported,
especially on multi-device filesystems. I had a hard time hitting it
locally, partially because it is much less likely to happen for fsync
based commits and most of my tests used fsyncs to exercise the commit
code. Ceph users running with -o notreelog were dramatically more
likely to trigger the corruptions.

The problem was that btrfs was triggering cache flushes before the last
copy of the super block, instead of doing them before the first copy.
We also needed to be more careful about getting flushes done to all the
devices in a multi-device FS before writing any of the supers. To help
verify the new code, I wrote up a writeback-caching elevator, which I
sent posted earlier today for comments/review.

Many thanks to Alexandre Oliva and Arne Jansen for helping nail this
down.

Outside of the cache flushes, we also have a fix from Liu Bo for
corruptions when snapshotting with mount -o inode_cache enabled.

My for-linus branch is still against 3.1, but these were tested on Linus
git as well.

Josef Bacik (3) commits (+90/-42):
Btrfs: wait on caching if we're loading the free space cache (+81/-41)
Btrfs: clear pages dirty for io and set them extent mapped (+5/-0)
Btrfs: sectorsize align offsets in fiemap (+4/-1)

Chris Mason (2) commits (+141/-18):
Btrfs: remove free-space-cache.c WARN during log replay (+7/-1)
Btrfs: fix barrier flushes (+134/-17)

Li Zefan (2) commits (+16/-38):
Btrfs: avoid unnecessary bitmap search for cluster setup (+4/-38)
Btrfs: fix to search one more bitmap for cluster setup (+12/-0)

Jan Schmidt (1) commits (+4/-4):
btrfs: mirror_num should be int, not u64

Jeff Mahoney (1) commits (+9/-6):
btrfs: Fix up 32/64-bit compatibility for new ioctls

Liu Bo (1) commits (+26/-1):
Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush

Arnd Hannemann (1) commits (+3/-3):
Btrfs: prefix resize related printks with btrfs:

David Sterba (1) commits (+4/-2):
btrfs: fix stat blocks accounting

Total: (12) commits (+290/-111)

fs/btrfs/backref.c | 2 +-
fs/btrfs/ctree.c | 17 +++++-
fs/btrfs/ctree.h | 5 +-
fs/btrfs/disk-io.c | 147 +++++++++++++++++++++++++++++++++++++-----
fs/btrfs/extent-tree.c | 119 +++++++++++++++++++++++------------
fs/btrfs/extent_io.c | 9 ++-
fs/btrfs/extent_io.h | 2 +-
fs/btrfs/free-space-cache.c | 63 ++++++++-----------
fs/btrfs/inode.c | 6 +-
fs/btrfs/ioctl.c | 15 +++--
fs/btrfs/scrub.c | 2 +-
fs/btrfs/transaction.c | 8 +++
fs/btrfs/volumes.h | 6 ++
13 files changed, 290 insertions(+), 111 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
0 new messages