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(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Dec 16, 2011 at 12:53:44PM -0500, Chris Mason wrote:> 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> > 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(-) > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html-- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Linus, My for-linus branch has two commits: git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git for-linus One is Al''s patch in response to my last pull request, but with one small change to call d_instantiate before trying to log the inode in btrfs_link. The other is a double unlock that Dan Carpenter found. These did get rebased this morning before I pushed them out, but I reran tests after the rebase. Chris Mason (1) commits (+2/-1): Btrfs: fix worker lock misuse in find_worker Al Viro (1) commits (+5/-4): Btrfs: call d_instantiate after all ops are setup Total: (2) commits (+7/-5) fs/btrfs/async-thread.c | 3 ++- fs/btrfs/inode.c | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html