| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef LINUX_VFS_DEBUG_H | |
| #define LINUX_VFS_DEBUG_H 1 | |
| #include <linux/bug.h> | |
| struct inode; | |
| #ifdef CONFIG_DEBUG_VFS | |
| void dump_inode(struct inode *inode, const char *reason); | |
| #define VFS_BUG_ON(cond) BUG_ON(cond) | |
| #define VFS_WARN_ON(cond) (void)WARN_ON(cond) | |
| #define VFS_WARN_ON_ONCE(cond) (void)WARN_ON_ONCE(cond) | |
| #define VFS_WARN_ONCE(cond, format...) (void)WARN_ONCE(cond, format) | |
| #define VFS_WARN(cond, format...) (void)WARN(cond, format) | |
| #define VFS_BUG_ON_INODE(cond, inode) ({ \ | |
| if (unlikely(!!(cond))) { \ | |
| dump_inode(inode, "VFS_BUG_ON_INODE(" #cond")");\ | |
| BUG_ON(1); \ | |
| } \ | |
| }) | |
| #define VFS_WARN_ON_INODE(cond, inode) ({ \ | |
| int __ret_warn = !!(cond); \ | |
| \ | |
| if (unlikely(__ret_warn)) { \ | |
| dump_inode(inode, "VFS_WARN_ON_INODE(" #cond")");\ | |
| WARN_ON(1); \ | |
| } \ | |
| unlikely(__ret_warn); \ | |
| }) | |
| #else | |
| #define VFS_BUG_ON(cond) BUILD_BUG_ON_INVALID(cond) | |
| #define VFS_WARN_ON(cond) BUILD_BUG_ON_INVALID(cond) | |
| #define VFS_WARN_ON_ONCE(cond) BUILD_BUG_ON_INVALID(cond) | |
| #define VFS_WARN_ONCE(cond, format...) BUILD_BUG_ON_INVALID(cond) | |
| #define VFS_WARN(cond, format...) BUILD_BUG_ON_INVALID(cond) | |
| #define VFS_BUG_ON_INODE(cond, inode) VFS_BUG_ON(cond) | |
| #define VFS_WARN_ON_INODE(cond, inode) BUILD_BUG_ON_INVALID(cond) | |
| #endif /* CONFIG_DEBUG_VFS */ | |
| #endif |