1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef LINUX_VFS_DEBUG_H 3 #define LINUX_VFS_DEBUG_H 1 4 5 #include <linux/bug.h> 6 7 struct inode; 8 9 #ifdef CONFIG_DEBUG_VFS 10 void dump_inode(struct inode *inode, const char *reason); 11 12 #define VFS_BUG_ON(cond) BUG_ON(cond) 13 #define VFS_WARN_ON(cond) (void)WARN_ON(cond) 14 #define VFS_WARN_ON_ONCE(cond) (void)WARN_ON_ONCE(cond) 15 #define VFS_WARN_ONCE(cond, format...) (void)WARN_ONCE(cond, format) 16 #define VFS_WARN(cond, format...) (void)WARN(cond, format) 17 18 #define VFS_BUG_ON_INODE(cond, inode) ({ \ 19 if (unlikely(!!(cond))) { \ 20 dump_inode(inode, "VFS_BUG_ON_INODE(" #cond")");\ 21 BUG_ON(1); \ 22 } \ 23 }) 24 25 #define VFS_WARN_ON_INODE(cond, inode) ({ \ 26 int __ret_warn = !!(cond); \ 27 \ 28 if (unlikely(__ret_warn)) { \ 29 dump_inode(inode, "VFS_WARN_ON_INODE(" #cond")");\ 30 WARN_ON(1); \ 31 } \ 32 unlikely(__ret_warn); \ 33 }) 34 #else 35 #define VFS_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) 36 #define VFS_WARN_ON(cond) BUILD_BUG_ON_INVALID(cond) 37 #define VFS_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond) 38 #define VFS_WARN_ONCE(cond, format...) BUILD_BUG_ON_INVALID(cond) 39 #define VFS_WARN(cond, format...) BUILD_BUG_ON_INVALID(cond) 40 41 #define VFS_BUG_ON_INODE(cond, inode) VFS_BUG_ON(cond) 42 #define VFS_WARN_ON_INODE(cond, inode) BUILD_BUG_ON_INVALID(cond) 43 #endif /* CONFIG_DEBUG_VFS */ 44 45 #endif 46