Skip to contentSkip to conversation

Btrfs fixes

GIT PULL Chris Mason 2 participants 3 messages Dec 16, 2011 Btrfs file system

lore
Share & tools
lore
#0 lore raw

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(-)
#1 lore raw
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: 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw
In reply to Chris Mason
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