On Sun, Sep 01, 2019 at 03:08:22PM -0500, Goldwyn Rodrigues wrote:
> From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
>
> To improve debugging abilities, especially invalid option
> asserts.
>
> Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
> ---
> 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(); \
Hmm, this log message ought to have a priority level, right?
#define IOMAP_ASSERT(expr) do { WARN_ON(!(expr)); } while(0)
(or crib ASSERT/ass{fail,warn} from XFS? :D)
> + }
> +#else
> +#define iomap_assert(expr)
((void)0)
So we don't just have stray semicolons in the code stream?
--D
> +#endif
> +
> /*
> * Types of block ranges for iomap mappings:
> */
> --
> 2.16.4
>