diff options
Diffstat (limited to 'fs/btrfs/delayed-inode.c')
-rw-r--r-- | fs/btrfs/delayed-inode.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c index a8d492dbd3e7..fe6caa7e698b 100644 --- a/fs/btrfs/delayed-inode.c +++ b/fs/btrfs/delayed-inode.c | |||
@@ -460,13 +460,10 @@ static void finish_one_item(struct btrfs_delayed_root *delayed_root) | |||
460 | { | 460 | { |
461 | int seq = atomic_inc_return(&delayed_root->items_seq); | 461 | int seq = atomic_inc_return(&delayed_root->items_seq); |
462 | 462 | ||
463 | /* | 463 | /* atomic_dec_return implies a barrier */ |
464 | * atomic_dec_return implies a barrier for waitqueue_active | ||
465 | */ | ||
466 | if ((atomic_dec_return(&delayed_root->items) < | 464 | if ((atomic_dec_return(&delayed_root->items) < |
467 | BTRFS_DELAYED_BACKGROUND || seq % BTRFS_DELAYED_BATCH == 0) && | 465 | BTRFS_DELAYED_BACKGROUND || seq % BTRFS_DELAYED_BATCH == 0)) |
468 | waitqueue_active(&delayed_root->wait)) | 466 | cond_wake_up_nomb(&delayed_root->wait); |
469 | wake_up(&delayed_root->wait); | ||
470 | } | 467 | } |
471 | 468 | ||
472 | static void __btrfs_remove_delayed_item(struct btrfs_delayed_item *delayed_item) | 469 | static void __btrfs_remove_delayed_item(struct btrfs_delayed_item *delayed_item) |