[GIT PULL] Btrfs for 4.3

From: Chris Mason
Date: Fri Sep 04 2015 - 16:00:20 EST


Hi Linus,

Please pull my for-linus-4.3 branch:

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

There are a few conflicts with Jens' pulls this time around, so I've put
a sample merge resolution into:

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

This is the same resolution I sent to linux-next, and the conflicts were
all pretty easy. The only gotcha I found was this commit:

commit 73ff61dbe5edeb1799d7e91c8b0641f87feb75fa
Author: Omar Sandoval <osandov@xxxxxx>
Date: Fri Jun 19 11:52:51 2015 -0700

Adds a new bio end_io callback to fs/btrfs/scrub.c:

+static void scrub_missing_raid56_end_io(struct bio *bio, int error)
+{
+ struct scrub_block *sblock = bio->bi_private;
+ struct btrfs_fs_info *fs_info = sblock->sctx->dev_root->fs_info;
+
+ if (error)
+ sblock->no_io_error_seen = 0;
+
+ btrfs_queue_work(fs_info->scrub_workers, &sblock->work);
+}
+

This needs to be converted to the new style bio->bi_error instead:

static void scrub_missing_raid56_end_io(struct bio *bio)
^^^^^^^^^^^^^^^^^^^
{
struct scrub_block *sblock = bio->bi_private;
struct btrfs_fs_info *fs_info = sblock->sctx->dev_root->fs_info;

if (bio->bi_error)
^^^^^^^^^^^^^^^^^^^^
sblock->no_io_error_seen = 0;

btrfs_queue_work(fs_info->scrub_workers, &sblock->work);
}

Conflicts aside, this has Jeff Mahoney's long standing trim patch that
fixes corners where trims were missing. Omar has some raid5/6 fixes,
especially for using scrub and device replace when devices are missing.

Zhao Lie continues cleaning and fixing things, this series fixes some
really hard to hit corners in xfstests. I had to pull it last merge
window due to some deadlocks, but those are now resolved.

I added support for Tejun's new blkio controllers. It seems to work
well for single devices, we'll expand to multi-device as well.

Zhaolei (14) commits (+120/-114):
btrfs: Cleanup: Remove chunk_objectid argument from btrfs_relocate_chunk() (+2/-8)
btrfs: use scrub_pause_on/off() to reduce code in scrub_enumerate_chunks() (+3/-7)
btrfs: Error handle for get_ref_objectid_v0() in relocate_block_group() (+4/-0)
btrfs: Cleanup: Remove objectid's init-value in create_reloc_inode() (+1/-1)
btrfs: Separate scrub_blocked_if_needed() to scrub_pause_on/off() (+10/-1)
btrfs: Fix data checksum error cause by replace with io-load. (+29/-7)
btrfs: Add WARN_ON() for double lock in btrfs_tree_lock() (+1/-0)
btrfs: Remove useless condition in start_log_trans() (+17/-26)
btrfs: Remove root argument in extent_data_ref_count() (+2/-3)
btrfs: Fix wrong comment of btrfs_alloc_tree_block() (+0/-3)
btrfs: abort transaction on btrfs_reloc_cow_block() (+3/-1)
btrfs: Remove unnecessary variants in relocation.c (+7/-11)
btrfs: Remove unused arguments in tree-log.c (+11/-14)
btrfs: Use ref_cnt for set_block_group_ro() (+30/-32)

Zhao Lei (7) commits (+55/-43):
btrfs: Bypass unrelated items before accessing its contents in scrub (+8/-8)
btrfs: Show detail information when mount failed on missing devices (+3/-2)
btrfs: Fix calculate typo caused by ambiguous meaning of logic_end (+5/-5)
btrfs: Check cancel and pause in interval of scrub operation (+18/-16)
btrfs: Load only necessary csums into list in scrub (+5/-3)
btrfs: Fix scrub panic when leaf crosses stripes (+10/-7)
btrfs: Free checksum list on scrub_extent() fail (+6/-2)

Filipe Manana (6) commits (+309/-26):
Btrfs: teach backref walking about backrefs with underflowed offset values (+25/-2)
Btrfs: fix stale dir entries after unlink, inode eviction and fsync (+29/-0)
Btrfs: check if previous transaction aborted to avoid fs corruption (+3/-0)
Btrfs: fix file read corruption after extent cloning and fsync (+54/-0)
Btrfs: fix stale dir entries after removing a link and fsync (+138/-20)
Btrfs: fix stale directory entries after fsync log replay (+60/-4)

Jeff Mahoney (6) commits (+350/-66):
btrfs: btrfs_issue_discard ensure offset/length are aligned to sector boundaries (+13/-4)
btrfs: explictly delete unused block groups in close_ctree and ro-remount (+20/-0)
btrfs: add missing discards when unpinning extents with -o discard (+105/-29)
btrfs: make btrfs_issue_discard return bytes discarded (+14/-5)
btrfs: iterate over unused chunk space in FITRIM (+143/-24)
btrfs: skip superblocks during discard (+55/-4)

Omar Sandoval (5) commits (+259/-44):
Btrfs: count devices correctly in readahead during RAID 5/6 replace (+3/-1)
Btrfs: add RAID 5/6 BTRFS_RBIO_REBUILD_MISSING operation (+86/-14)
Btrfs: remove misleading handling of missing device scrub (+1/-15)
Btrfs: fix device replace of a missing RAID 5/6 device (+147/-10)
Btrfs: fix parity scrub of RAID 5/6 with missing device (+22/-4)

Michal Hocko (2) commits (+3/-7):
btrfs: Prevent from early transaction abort (+2/-4)
btrfs: use __GFP_NOFAIL in alloc_btrfs_bio (+1/-3)

Liu Bo (2) commits (+7/-7):
Btrfs: fix defrag to merge tail file extent (+5/-1)
Btrfs: fix warning in backref walking (+2/-6)

Chris Mason (2) commits (+33/-4):
btrfs: fix compile when block cgroups are not enabled (+5/-0)
Btrfs: add support for blkio controllers (+28/-4)

Mark Fasheh (1) commits (+8/-26):
btrfs: fix clone / extent-same deadlocks

Byongho Lee (1) commits (+0/-7):
Btrfs: remove unused mutex from struct 'btrfs_fs_info'

Naohiro Aota (1) commits (+9/-3):
btrfs: fix search key advancing condition

Total: (47) commits (+1153/-347)

fs/btrfs/backref.c | 35 ++++-
fs/btrfs/ctree.c | 4 +-
fs/btrfs/ctree.h | 18 +--
fs/btrfs/disk-io.c | 16 +-
fs/btrfs/extent-tree.c | 298 ++++++++++++++++++++++++++++++++-----
fs/btrfs/extent_io.c | 25 +++-
fs/btrfs/free-space-cache.c | 57 +++++---
fs/btrfs/inode.c | 35 ++++-
fs/btrfs/ioctl.c | 52 +++----
fs/btrfs/locking.c | 1 +
fs/btrfs/raid56.c | 87 +++++++++--
fs/btrfs/raid56.h | 10 +-
fs/btrfs/reada.c | 4 +-
fs/btrfs/relocation.c | 33 ++---
fs/btrfs/scrub.c | 348 +++++++++++++++++++++++++++++++++-----------
fs/btrfs/super.c | 14 +-
fs/btrfs/transaction.c | 7 +-
fs/btrfs/transaction.h | 2 +
fs/btrfs/tree-log.c | 344 +++++++++++++++++++++++++++++++++++--------
fs/btrfs/volumes.c | 89 ++++++-----
fs/btrfs/volumes.h | 3 +
21 files changed, 1144 insertions(+), 338 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/