From: Goldwyn Rodrigues <rgold...@suse.com>

To improve debugging abilities, especially invalid option
asserts.

Signed-off-by: Goldwyn Rodrigues <rgold...@suse.com>
---
 fs/Kconfig            |  3 +++
 include/linux/iomap.h | 11 +++++++++++
 2 files changed, 14 insertions(+)

diff --git a/fs/Kconfig b/fs/Kconfig
index bfb1c6095c7a..4bed5df9b55f 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -19,6 +19,9 @@ if BLOCK
 
 config FS_IOMAP
        bool
+config FS_IOMAP_DEBUG
+       bool "Debugging for the iomap code"
+       depends on FS_IOMAP
 
 source "fs/ext2/Kconfig"
 source "fs/ext4/Kconfig"
diff --git a/include/linux/iomap.h b/include/linux/iomap.h
index bc499ceae392..209b6c93674e 100644
--- a/include/linux/iomap.h
+++ b/include/linux/iomap.h
@@ -18,6 +18,17 @@ struct page;
 struct vm_area_struct;
 struct vm_fault;
 
+#ifdef CONFIG_FS_IOMAP_DEBUG
+#define iomap_assert(expr) \
+       if(!(expr)) { \
+               printk( "Assertion failed! %s,%s,%s,line=%d\n",\
+#expr,__FILE__,__func__,__LINE__); \
+               BUG(); \
+       }
+#else
+#define iomap_assert(expr)
+#endif
+
 /*
  * Types of block ranges for iomap mappings:
  */
-- 
2.16.4

Reply via email to