lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20111122013031.GG28259@shiny>
Date:	Mon, 21 Nov 2011 20:30:31 -0500
From:	Chris Mason <chris.mason@...cle.com>
To:	Linus Torvalds <torvalds@...ux-foundation.org>,
	linux-btrfs <linux-btrfs@...r.kernel.org>,
	LKML <linux-kernel@...r.kernel.org>
Subject: [GIT PULL] Btrfs fixes

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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ