Btrfs: delay clearing EXTENT_DELALLOC for compressed extents
authorChris Mason <chris.mason@oracle.com>
Thu, 8 Oct 2009 16:30:20 +0000 (12:30 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 8 Oct 2009 19:11:50 +0000 (15:11 -0400)
commita3429ab70b04363c6190964e82f04f44f3e34cf0
treef9aa5104699fdb82a3dfa327948241aa3e0022d5
parenta791e35e12ff672e8a0e140abeeaf900c3b2ea77
Btrfs: delay clearing EXTENT_DELALLOC for compressed extents

When compression is on, the cow_file_range code is farmed off to
worker threads.  This allows us to do significant CPU work in parallel
on SMP machines.

But it is a delicate balance around when we clear flags and how.  In
the past we cleared the delalloc flag immediately, which was safe
because the pages stayed locked.

But this is causing problems with the newest ENOSPC code, and with the
recent extent state cleanups we can now clear the delalloc bit at the
same time the uncompressed code does.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c