btrfs: introduce EXPORT_FOR_TESTS macro
authorJohannes Thumshirn <jthumshirn@suse.de>
Mon, 19 Nov 2018 09:38:16 +0000 (10:38 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 17 Dec 2018 13:51:37 +0000 (14:51 +0100)
Depending on whether CONFIG_BTRFS_FS_RUN_SANITY_TESTS is set, some BTRFS
functions are either local to the file they are implemented in and thus
should be declared static or are called from within the test
implementation defined in a different file.

Introduce an EXPORT_FOR_TESTS macro which depending on
CONFIG_BTRFS_FS_RUN_SANITY_TESTS either adds the 'static' keyword to a
function or not.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h

index e62824cae00a75c0327ad4e479b5c70f3d9704e5..83f0d98c9d5daa9dc9edc2efada9c1007ae2bfce 100644 (file)
@@ -3471,6 +3471,16 @@ static inline void assfail(const char *expr, const char *file, int line)
 #define ASSERT(expr)   ((void)0)
 #endif
 
 #define ASSERT(expr)   ((void)0)
 #endif
 
+/*
+ * Use that for functions that are conditionally exported for sanity tests but
+ * otherwise static
+ */
+#ifndef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
+#define EXPORT_FOR_TESTS static
+#else
+#define EXPORT_FOR_TESTS
+#endif
+
 __cold
 static inline void btrfs_print_v0_err(struct btrfs_fs_info *fs_info)
 {
 __cold
 static inline void btrfs_print_v0_err(struct btrfs_fs_info *fs_info)
 {