diff options
author | David Sterba <dsterba@suse.com> | 2019-08-21 12:48:25 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2019-09-09 08:59:15 -0400 |
commit | 602cbe91fb012a923a9fea880e600e004eb1543b (patch) | |
tree | 726a8c9f2373aa9136c7f3d7c6f404534f1a168d | |
parent | d2979aa25fc8de6498d906ae6b46b028457d6400 (diff) |
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: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/compression.c | 1 | ||||
-rw-r--r-- | fs/btrfs/ctree.h | 22 | ||||
-rw-r--r-- | fs/btrfs/delayed-inode.c | 1 | ||||
-rw-r--r-- | fs/btrfs/dev-replace.c | 1 | ||||
-rw-r--r-- | fs/btrfs/extent-tree.c | 1 | ||||
-rw-r--r-- | fs/btrfs/inode.c | 1 | ||||
-rw-r--r-- | fs/btrfs/locking.c | 1 | ||||
-rw-r--r-- | fs/btrfs/misc.h | 33 | ||||
-rw-r--r-- | fs/btrfs/ordered-data.c | 1 | ||||
-rw-r--r-- | fs/btrfs/transaction.c | 1 | ||||
-rw-r--r-- | fs/btrfs/tree-log.c | 1 | ||||
-rw-r--r-- | fs/btrfs/zstd.c | 1 |
12 files changed, 43 insertions, 22 deletions
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index fe7a8b5ff96c..b05b361e2062 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/sched/mm.h> | 18 | #include <linux/sched/mm.h> |
19 | #include <linux/log2.h> | 19 | #include <linux/log2.h> |
20 | #include <crypto/hash.h> | 20 | #include <crypto/hash.h> |
21 | #include "misc.h" | ||
21 | #include "ctree.h" | 22 | #include "ctree.h" |
22 | #include "disk-io.h" | 23 | #include "disk-io.h" |
23 | #include "transaction.h" | 24 | #include "transaction.h" |
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index ef40fffb5e46..5cb410cc1502 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -3517,26 +3517,4 @@ static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info) | |||
3517 | } | 3517 | } |
3518 | #endif | 3518 | #endif |
3519 | 3519 | ||
3520 | static inline void cond_wake_up(struct wait_queue_head *wq) | ||
3521 | { | ||
3522 | /* | ||
3523 | * This implies a full smp_mb barrier, see comments for | ||
3524 | * waitqueue_active why. | ||
3525 | */ | ||
3526 | if (wq_has_sleeper(wq)) | ||
3527 | wake_up(wq); | ||
3528 | } | ||
3529 | |||
3530 | static inline void cond_wake_up_nomb(struct wait_queue_head *wq) | ||
3531 | { | ||
3532 | /* | ||
3533 | * Special case for conditional wakeup where the barrier required for | ||
3534 | * waitqueue_active is implied by some of the preceding code. Eg. one | ||
3535 | * of such atomic operations (atomic_dec_and_return, ...), or a | ||
3536 | * unlock/lock sequence, etc. | ||
3537 | */ | ||
3538 | if (waitqueue_active(wq)) | ||
3539 | wake_up(wq); | ||
3540 | } | ||
3541 | |||
3542 | #endif | 3520 | #endif |
diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c index 9318cf761a07..1f7f39b10bd0 100644 --- a/fs/btrfs/delayed-inode.c +++ b/fs/btrfs/delayed-inode.c | |||
@@ -6,6 +6,7 @@ | |||
6 | 6 | ||
7 | #include <linux/slab.h> | 7 | #include <linux/slab.h> |
8 | #include <linux/iversion.h> | 8 | #include <linux/iversion.h> |
9 | #include "misc.h" | ||
9 | #include "delayed-inode.h" | 10 | #include "delayed-inode.h" |
10 | #include "disk-io.h" | 11 | #include "disk-io.h" |
11 | #include "transaction.h" | 12 | #include "transaction.h" |
diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index 00ea828beb00..48890826b5e6 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/blkdev.h> | 9 | #include <linux/blkdev.h> |
10 | #include <linux/kthread.h> | 10 | #include <linux/kthread.h> |
11 | #include <linux/math64.h> | 11 | #include <linux/math64.h> |
12 | #include "misc.h" | ||
12 | #include "ctree.h" | 13 | #include "ctree.h" |
13 | #include "extent_map.h" | 14 | #include "extent_map.h" |
14 | #include "disk-io.h" | 15 | #include "disk-io.h" |
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index af7631472073..795b592e5269 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/percpu_counter.h> | 16 | #include <linux/percpu_counter.h> |
17 | #include <linux/lockdep.h> | 17 | #include <linux/lockdep.h> |
18 | #include <linux/crc32c.h> | 18 | #include <linux/crc32c.h> |
19 | #include "misc.h" | ||
19 | #include "tree-log.h" | 20 | #include "tree-log.h" |
20 | #include "disk-io.h" | 21 | #include "disk-io.h" |
21 | #include "print-tree.h" | 22 | #include "print-tree.h" |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index d79ad5abd06e..07f77c7e6b22 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/swap.h> | 30 | #include <linux/swap.h> |
31 | #include <linux/sched/mm.h> | 31 | #include <linux/sched/mm.h> |
32 | #include <asm/unaligned.h> | 32 | #include <asm/unaligned.h> |
33 | #include "misc.h" | ||
33 | #include "ctree.h" | 34 | #include "ctree.h" |
34 | #include "disk-io.h" | 35 | #include "disk-io.h" |
35 | #include "transaction.h" | 36 | #include "transaction.h" |
diff --git a/fs/btrfs/locking.c b/fs/btrfs/locking.c index e4309bcf0b5f..7f9a578a1a20 100644 --- a/fs/btrfs/locking.c +++ b/fs/btrfs/locking.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/spinlock.h> | 8 | #include <linux/spinlock.h> |
9 | #include <linux/page-flags.h> | 9 | #include <linux/page-flags.h> |
10 | #include <asm/bug.h> | 10 | #include <asm/bug.h> |
11 | #include "misc.h" | ||
11 | #include "ctree.h" | 12 | #include "ctree.h" |
12 | #include "extent_io.h" | 13 | #include "extent_io.h" |
13 | #include "locking.h" | 14 | #include "locking.h" |
diff --git a/fs/btrfs/misc.h b/fs/btrfs/misc.h new file mode 100644 index 000000000000..ef3901238ddd --- /dev/null +++ b/fs/btrfs/misc.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | |||
3 | #ifndef BTRFS_MISC_H | ||
4 | #define BTRFS_MISC_H | ||
5 | |||
6 | #include <linux/sched.h> | ||
7 | #include <linux/wait.h> | ||
8 | |||
9 | #define in_range(b, first, len) ((b) >= (first) && (b) < (first) + (len)) | ||
10 | |||
11 | static inline void cond_wake_up(struct wait_queue_head *wq) | ||
12 | { | ||
13 | /* | ||
14 | * This implies a full smp_mb barrier, see comments for | ||
15 | * waitqueue_active why. | ||
16 | */ | ||
17 | if (wq_has_sleeper(wq)) | ||
18 | wake_up(wq); | ||
19 | } | ||
20 | |||
21 | static inline void cond_wake_up_nomb(struct wait_queue_head *wq) | ||
22 | { | ||
23 | /* | ||
24 | * Special case for conditional wakeup where the barrier required for | ||
25 | * waitqueue_active is implied by some of the preceding code. Eg. one | ||
26 | * of such atomic operations (atomic_dec_and_return, ...), or a | ||
27 | * unlock/lock sequence, etc. | ||
28 | */ | ||
29 | if (waitqueue_active(wq)) | ||
30 | wake_up(wq); | ||
31 | } | ||
32 | |||
33 | #endif | ||
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c index ae7f64a8facb..24b6c72b9a59 100644 --- a/fs/btrfs/ordered-data.c +++ b/fs/btrfs/ordered-data.c | |||
@@ -7,6 +7,7 @@ | |||
7 | #include <linux/blkdev.h> | 7 | #include <linux/blkdev.h> |
8 | #include <linux/writeback.h> | 8 | #include <linux/writeback.h> |
9 | #include <linux/sched/mm.h> | 9 | #include <linux/sched/mm.h> |
10 | #include "misc.h" | ||
10 | #include "ctree.h" | 11 | #include "ctree.h" |
11 | #include "transaction.h" | 12 | #include "transaction.h" |
12 | #include "btrfs_inode.h" | 13 | #include "btrfs_inode.h" |
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index f21416d68c2c..8624bdee8c5b 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/pagemap.h> | 10 | #include <linux/pagemap.h> |
11 | #include <linux/blkdev.h> | 11 | #include <linux/blkdev.h> |
12 | #include <linux/uuid.h> | 12 | #include <linux/uuid.h> |
13 | #include "misc.h" | ||
13 | #include "ctree.h" | 14 | #include "ctree.h" |
14 | #include "disk-io.h" | 15 | #include "disk-io.h" |
15 | #include "transaction.h" | 16 | #include "transaction.h" |
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 19a4b9dc669f..34d087008b72 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/blkdev.h> | 8 | #include <linux/blkdev.h> |
9 | #include <linux/list_sort.h> | 9 | #include <linux/list_sort.h> |
10 | #include <linux/iversion.h> | 10 | #include <linux/iversion.h> |
11 | #include "misc.h" | ||
11 | #include "ctree.h" | 12 | #include "ctree.h" |
12 | #include "tree-log.h" | 13 | #include "tree-log.h" |
13 | #include "disk-io.h" | 14 | #include "disk-io.h" |
diff --git a/fs/btrfs/zstd.c b/fs/btrfs/zstd.c index 0af4a5cd4313..764d47b107e5 100644 --- a/fs/btrfs/zstd.c +++ b/fs/btrfs/zstd.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
18 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
19 | #include <linux/zstd.h> | 19 | #include <linux/zstd.h> |
20 | #include "misc.h" | ||
20 | #include "compression.h" | 21 | #include "compression.h" |
21 | #include "ctree.h" | 22 | #include "ctree.h" |
22 | 23 | ||