Btrfs: change reserved_extents to an atomic_t
authorJosef Bacik <josef@redhat.com>
Tue, 25 Jan 2011 21:30:38 +0000 (16:30 -0500)
committerJosef Bacik <josef@redhat.com>
Thu, 17 Mar 2011 18:21:18 +0000 (14:21 -0400)
commit57a45ced94fe48a701361d64230fc16eefa189dd
tree8f0cfe52ba0b3fb8a6ed3cc5d3e7449369b0b9a5
parent4a64001f0047956e283f7ada9843dfc3f3b5d8c8
Btrfs: change reserved_extents to an atomic_t

We track delayed allocation per inodes via 2 counters, one is
outstanding_extents and reserved_extents.  Outstanding_extents is already an
atomic_t, but reserved_extents is not and is protected by a spinlock.  So
convert this to an atomic_t and instead of using a spinlock, use atomic_cmpxchg
when releasing delalloc bytes.  This makes our inode 72 bytes smaller, and
reduces locking overhead (albiet it was minimal to begin with).  Thanks,

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