aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
authorMiao Xie <[email protected]>2013-01-29 10:11:59 +0000
committerJosef Bacik <[email protected]>2013-02-20 17:59:06 +0000
commitdf0af1a57f72c74d53a9377c60ff20095afab97d (patch)
tree588048ea16f8564a2eb449c0e9b7ba22c49eebc6 /fs/btrfs/disk-io.c
parentBtrfs: use percpu counter for fs_info->delalloc_bytes (diff)
downloadkernel-df0af1a57f72c74d53a9377c60ff20095afab97d.tar.gz
kernel-df0af1a57f72c74d53a9377c60ff20095afab97d.zip
Btrfs: use the inode own lock to protect its delalloc_bytes
We need not use a global lock to protect the delalloc_bytes of the inode, just use its own lock. In this way, we can reduce the lock contention and ->delalloc_lock will just protect delalloc inode list. Signed-off-by: Miao Xie <[email protected]> Signed-off-by: Josef Bacik <[email protected]>
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r--fs/btrfs/disk-io.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 2c9498aefe86..11f6dbcb1191 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3690,6 +3690,8 @@ static void btrfs_destroy_delalloc_inodes(struct btrfs_root *root)
delalloc_inodes);
list_del_init(&btrfs_inode->delalloc_inodes);
+ clear_bit(BTRFS_INODE_IN_DELALLOC_LIST,
+ &btrfs_inode->runtime_flags);
btrfs_invalidate_inodes(btrfs_inode->root);
}