]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit79a15c249d0de2cff0f87eb989496ec914b3576d
treef5eac07be3a5844179a020fd185ff377fb39961a
parent46c5a336e850c19cd6f0948a78e79f835fc735f8
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