Btrfs: serialize flushers in reserve_metadata_bytes
authorJosef Bacik <josef@redhat.com>
Tue, 7 Jun 2011 20:07:44 +0000 (16:07 -0400)
committerJosef Bacik <josef@redhat.com>
Mon, 11 Jul 2011 13:58:48 +0000 (09:58 -0400)
commitfdb5effd5c2a7e01dc3a4217bb194e2d3a5b160f
treef5eac07be3a5844179a020fd185ff377fb39961a
parentb5009945be18023942ce28327893c7bc1e58fe54
Btrfs: serialize flushers in reserve_metadata_bytes

We keep having problems with early enospc, and that's because our method of
making space is inherently racy.  The problem is we can have one guy trying to
make space for himself, and in the meantime people come in and steal his
reservation.  In order to stop this we make a waitqueue and put anybody who
comes into reserve_metadata_bytes on that waitqueue if somebody is trying to
make more space.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
fs/btrfs/ctree.h
fs/btrfs/extent-tree.c