Commit 602cbe91 authored by David Sterba's avatar David Sterba

btrfs: move cond_wake_up functions out of ctree

The file ctree.h serves as a header for everything and has become quite
bloated. Split some helpers that are generic and create a new file that
should be the catch-all for code that's not btrfs-specific.
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent d2979aa2
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/sched/mm.h> #include <linux/sched/mm.h>
#include <linux/log2.h> #include <linux/log2.h>
#include <crypto/hash.h> #include <crypto/hash.h>
#include "misc.h"
#include "ctree.h" #include "ctree.h"
#include "disk-io.h" #include "disk-io.h"
#include "transaction.h" #include "transaction.h"
......
...@@ -3517,26 +3517,4 @@ static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info) ...@@ -3517,26 +3517,4 @@ static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info)
} }
#endif #endif
static inline void cond_wake_up(struct wait_queue_head *wq)
{
/*
* This implies a full smp_mb barrier, see comments for
* waitqueue_active why.
*/
if (wq_has_sleeper(wq))
wake_up(wq);
}
static inline void cond_wake_up_nomb(struct wait_queue_head *wq)
{
/*
* Special case for conditional wakeup where the barrier required for
* waitqueue_active is implied by some of the preceding code. Eg. one
* of such atomic operations (atomic_dec_and_return, ...), or a
* unlock/lock sequence, etc.
*/
if (waitqueue_active(wq))
wake_up(wq);
}
#endif #endif
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/iversion.h> #include <linux/iversion.h>
#include "misc.h"
#include "delayed-inode.h" #include "delayed-inode.h"
#include "disk-io.h" #include "disk-io.h"
#include "transaction.h" #include "transaction.h"
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/kthread.h> #include <linux/kthread.h>
#include <linux/math64.h> #include <linux/math64.h>
#include "misc.h"
#include "ctree.h" #include "ctree.h"
#include "extent_map.h" #include "extent_map.h"
#include "disk-io.h" #include "disk-io.h"
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/percpu_counter.h> #include <linux/percpu_counter.h>
#include <linux/lockdep.h> #include <linux/lockdep.h>
#include <linux/crc32c.h> #include <linux/crc32c.h>
#include "misc.h"
#include "tree-log.h" #include "tree-log.h"
#include "disk-io.h" #include "disk-io.h"
#include "print-tree.h" #include "print-tree.h"
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include <linux/swap.h> #include <linux/swap.h>
#include <linux/sched/mm.h> #include <linux/sched/mm.h>
#include <asm/unaligned.h> #include <asm/unaligned.h>
#include "misc.h"
#include "ctree.h" #include "ctree.h"
#include "disk-io.h" #include "disk-io.h"
#include "transaction.h" #include "transaction.h"
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/page-flags.h> #include <linux/page-flags.h>
#include <asm/bug.h> #include <asm/bug.h>
#include "misc.h"
#include "ctree.h" #include "ctree.h"
#include "extent_io.h" #include "extent_io.h"
#include "locking.h" #include "locking.h"
......
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef BTRFS_MISC_H
#define BTRFS_MISC_H
#include <linux/sched.h>
#include <linux/wait.h>
#define in_range(b, first, len) ((b) >= (first) && (b) < (first) + (len))
static inline void cond_wake_up(struct wait_queue_head *wq)
{
/*
* This implies a full smp_mb barrier, see comments for
* waitqueue_active why.
*/
if (wq_has_sleeper(wq))
wake_up(wq);
}
static inline void cond_wake_up_nomb(struct wait_queue_head *wq)
{
/*
* Special case for conditional wakeup where the barrier required for
* waitqueue_active is implied by some of the preceding code. Eg. one
* of such atomic operations (atomic_dec_and_return, ...), or a
* unlock/lock sequence, etc.
*/
if (waitqueue_active(wq))
wake_up(wq);
}
#endif
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/writeback.h> #include <linux/writeback.h>
#include <linux/sched/mm.h> #include <linux/sched/mm.h>
#include "misc.h"
#include "ctree.h" #include "ctree.h"
#include "transaction.h" #include "transaction.h"
#include "btrfs_inode.h" #include "btrfs_inode.h"
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/uuid.h> #include <linux/uuid.h>
#include "misc.h"
#include "ctree.h" #include "ctree.h"
#include "disk-io.h" #include "disk-io.h"
#include "transaction.h" #include "transaction.h"
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/list_sort.h> #include <linux/list_sort.h>
#include <linux/iversion.h> #include <linux/iversion.h>
#include "misc.h"
#include "ctree.h" #include "ctree.h"
#include "tree-log.h" #include "tree-log.h"
#include "disk-io.h" #include "disk-io.h"
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/zstd.h> #include <linux/zstd.h>
#include "misc.h"
#include "compression.h" #include "compression.h"
#include "ctree.h" #include "ctree.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment