]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: grab write lock directly if write_lock_level is the max level
authorLiu Bo <bo.liu@linux.alibaba.com>
Fri, 18 May 2018 03:00:23 +0000 (11:00 +0800)
committerDavid Sterba <dsterba@suse.com>
Wed, 30 May 2018 14:46:51 +0000 (16:46 +0200)
commit298459c418e5bea32b791fa624e74ec415a72e59
treec4996ca4d8c9fd5410c400dfdffaa1dadddb2cc6
parent145c7e902e390df0a4bf017e7890da32303bdc4a
Btrfs: grab write lock directly if write_lock_level is the max level

Typically, when acquiring root node's lock, btrfs tries its best to get
read lock and trade for write lock if @write_lock_level implies to do so.

In case of (cow && (p->keep_locks || p->lowest_level)), write_lock_level
is set to BTRFS_MAX_LEVEL, which means we need to acquire root node's
write lock directly.

In this particular case, the dance of acquiring read lock and then trading
for write lock can be saved.

Signed-off-by: Liu Bo <bo.liu@linux.alibaba.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.c