mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
btrfs: simplify extracting delayed node at btrfs_first_prepared_delayed_node()
Instead of grabbing the next pointer from the list and then doing a list_entry() call, we can simply use list_first_entry(), removing the need for list_head variable. Also there's no need to check if the list is empty before attempting to extract the first element, we can use list_first_entry_or_null(), removing the need for a special if statement and the 'out' label. Reviewed-by: Qu Wenruo <wqu@suse.com> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
32bc875cbc
commit
4cde0724c9
|
|
@ -294,18 +294,15 @@ static inline void btrfs_release_delayed_node(struct btrfs_delayed_node *node)
|
|||
static struct btrfs_delayed_node *btrfs_first_prepared_delayed_node(
|
||||
struct btrfs_delayed_root *delayed_root)
|
||||
{
|
||||
struct list_head *p;
|
||||
struct btrfs_delayed_node *node = NULL;
|
||||
struct btrfs_delayed_node *node;
|
||||
|
||||
spin_lock(&delayed_root->lock);
|
||||
if (list_empty(&delayed_root->prepare_list))
|
||||
goto out;
|
||||
|
||||
p = delayed_root->prepare_list.next;
|
||||
list_del_init(p);
|
||||
node = list_entry(p, struct btrfs_delayed_node, p_list);
|
||||
refcount_inc(&node->refs);
|
||||
out:
|
||||
node = list_first_entry_or_null(&delayed_root->prepare_list,
|
||||
struct btrfs_delayed_node, p_list);
|
||||
if (node) {
|
||||
list_del_init(&node->p_list);
|
||||
refcount_inc(&node->refs);
|
||||
}
|
||||
spin_unlock(&delayed_root->lock);
|
||||
|
||||
return node;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user