summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/delayed-inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/delayed-inode.c')
-rw-r--r--fs/btrfs/delayed-inode.c9
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
472static void __btrfs_remove_delayed_item(struct btrfs_delayed_item *delayed_item) 469static void __btrfs_remove_delayed_item(struct btrfs_delayed_item *delayed_item)