Btrfs fixes
Hi everyone,
This pull request is bigger than I wanted it to be, but Josef has commits in here for some long running ENOSPC bugs in btrfs. This is a few weeks of tracing our delalloc reservations from Josef, and then fixing up the related bugs.
Outside of Josef's patches we have some assorted fixes. Arne figured out we were orphaning whole snapshots if you unmounted enough times while the snapshot was being deleted.
Josef Bacik (6) commits (+212/-117):
Btrfs: fix how we do delalloc reservations and how we free reservations on error (+44/-13)
Btrfs: fix num_workers_starting bug and other bugs in async thread (+83/-78)
Btrfs: only set cache_generation if we setup the block group (+1/-1)
Btrfs: deal with enospc from dirtying inodes properly (+80/-22)
Btrfs: don't panic if orphan item already exists (+1/-1)
Btrfs: fix leaked space in truncate (+3/-2)
Chris Mason (4) commits (+10/-4):
Btrfs: fix btrfs_end_bio to deal with write errors to a single mirror (+1/-1)
Btrfs: deal with NULL srv_rsv in the delalloc inode reservation code (+2/-2)
Btrfs: add a cond_resched() into the worker loop (+1/-1)
Btrfs: unplug every once and a while (+6/-0)
Miao Xie (3) commits (+29/-13):
Btrfs: fix wrong i_size when truncating a file to a larger size (+12/-6)
Btrfs: fix inaccurate available space on raid0 profile (+13/-6)
Btrfs: fix wrong disk space information of the files (+4/-1)
Casey Schaufler (1) commits (+26/-5):
BTRFS: Establish i_ops before calling d_instantiate
Arne Jansen (1) commits (+32/-0):
btrfs: keep orphans for subvolume deletion
Li Zefan (1) commits (+2/-2):
Btrfs: fix ctime update of on-disk inode
Total: (16) commits (+309/-140)
fs/btrfs/async-thread.c | 117 ++++++++++++++---------------- fs/btrfs/async-thread.h | 4 +- fs/btrfs/ctree.h | 3 +- fs/btrfs/delayed-inode.c | 4 +- fs/btrfs/disk-io.c | 34 ++++++---- fs/btrfs/extent-tree.c | 45 ++++++++---- fs/btrfs/file.c | 6 ++- fs/btrfs/inode.c | 180 +++++++++++++++++++++++++++++++++++++--------- fs/btrfs/ioctl.c | 6 +- fs/btrfs/relocation.c | 2 + fs/btrfs/scrub.c | 8 ++- fs/btrfs/super.c | 32 +++++++-- fs/btrfs/volumes.c | 8 ++- 13 files changed, 309 insertions(+), 140 deletions(-)
Quoted 10 lines · Chris Mason
Hi everyone,
This pull request is bigger than I wanted it to be, but Josef has commits in here for some long running ENOSPC bugs in btrfs. This is a few weeks of tracing our delalloc reservations from Josef, and then fixing up the related bugs.
Outside of Josef's patches we have some assorted fixes. Arne figured out we were orphaning whole snapshots if you unmounted enough times while the snapshot was being deleted.
Sorry, this part is missing:
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus
Quoted 49 lines
Josef Bacik (6) commits (+212/-117):
Btrfs: fix how we do delalloc reservations and how we free reservations on error (+44/-13)
Btrfs: fixnum_workers_startingbug and other bugs in async thread (+83/-78)
Btrfs: only setcache_generationif we setup the block group (+1/-1)
Btrfs: deal with enospc from dirtying inodes properly (+80/-22)
Btrfs: don't panic if orphan item already exists (+1/-1)
Btrfs: fix leaked space in truncate (+3/-2)Chris Mason (4) commits (+10/-4):
Btrfs: fixbtrfs_end_bioto deal with write errors to a single mirror (+1/-1)
Btrfs: deal with NULLsrv_rsvin the delalloc inode reservation code (+2/-2)
Btrfs: add acond_resched()into the worker loop (+1/-1)
Btrfs: unplug every once and a while (+6/-0)Miao Xie (3) commits (+29/-13):
Btrfs: fix wrongi_sizewhen truncating a file to a larger size (+12/-6)
Btrfs: fix inaccurate available space on raid0 profile (+13/-6)
Btrfs: fix wrong disk space information of the files (+4/-1)Casey Schaufler (1) commits (+26/-5):
BTRFS: Establishi_opsbefore callingd_instantiateArne Jansen (1) commits (+32/-0):
btrfs: keep orphans for subvolume deletionLi Zefan (1) commits (+2/-2):
Btrfs: fix ctime update of on-disk inodeTotal: (16) commits (+309/-140)
fs/btrfs/async-thread.c | 117 ++++++++++++++---------------- fs/btrfs/async-thread.h | 4 +- fs/btrfs/ctree.h | 3 +- fs/btrfs/delayed-inode.c | 4 +- fs/btrfs/disk-io.c | 34 ++++++---- fs/btrfs/extent-tree.c | 45 ++++++++---- fs/btrfs/file.c | 6 ++- fs/btrfs/inode.c | 180 +++++++++++++++++++++++++++++++++++++--------- fs/btrfs/ioctl.c | 6 +- fs/btrfs/relocation.c | 2 + fs/btrfs/scrub.c | 8 ++- fs/btrfs/super.c | 32 +++++++-- fs/btrfs/volumes.c | 8 ++- 13 files changed, 309 insertions(+), 140 deletions(-)--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 5 lines · Chris Mason <chris.mason <at> oracle.com> writes:
Hi everyone,
This pull request is bigger than I wanted it to be, but Josef has commits in here for some long running ENOSPC bugs in btrfs.
% git log --no-merges --grep="enospc" | grep commit | wc -l
45
% git log --no-merges --grep="enospc"|grep "Date:"
Date: Fri Oct 7 11:55:34 2011 -0400 Date: Mon Sep 26 17:12:22 2011 -0400 Date: Tue Aug 30 10:19:10 2011 -0400 Date: Mon Aug 29 14:06:00 2011 -0400 Date: Tue Jul 26 17:00:46 2011 -0400 Date: Fri Jul 15 15:16:44 2011 +0000 Date: Tue Jun 7 16:07:44 2011 -0400 Date: Tue Jun 7 15:07:51 2011 -0400 Date: Fri May 27 16:11:38 2011 -0400 Date: Wed May 25 13:10:16 2011 -0400 Date: Tue Apr 5 11:57:27 2011 -0400 Date: Wed Feb 16 13:57:04 2011 -0500 Date: Wed Feb 16 13:10:41 2011 -0500 Date: Fri Nov 12 23:17:56 2010 +0000 Date: Wed May 26 11:31:00 2010 -0400 Date: Tue May 25 20:56:50 2010 -0400 Date: Fri Mar 19 14:38:13 2010 +0000 Date: Thu Dec 17 15:47:17 2009 -0500 Date: Wed Nov 11 10:16:57 2009 -0500 Date: Tue Nov 10 21:23:48 2009 -0500 Date: Tue Sep 22 14:48:44 2009 -0400 Date: Mon Nov 17 21:12:00 2008 -0500 Date: Fri Nov 7 18:17:11 2008 -0500 Date: Fri Nov 7 09:06:11 2008 -0500 Date: Wed Oct 29 14:49:05 2008 -0400 Date: Thu Jan 3 09:22:38 2008 -0500 Date: Mon Sep 17 11:00:51 2007 -0400 Date: Wed Aug 29 09:11:44 2007 -0400