2019-08-22 07:07:45

by Austin Kim

[permalink] [raw]
Subject: [PATCH] xfs: Use BUG_ON rather than BUG() to remove unreachable code

Code after BUG is unreachable since system would be crashed
after the call to BUG is made.
So change BUG_ON instead of BUG() to remove unreachable code.
---
fs/xfs/xfs_mount.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 322da69..a681808 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -213,13 +213,7 @@ xfs_initialize_perag(
goto out_hash_destroy;

spin_lock(&mp->m_perag_lock);
- if (radix_tree_insert(&mp->m_perag_tree, index, pag)) {
- BUG();
- spin_unlock(&mp->m_perag_lock);
- radix_tree_preload_end();
- error = -EEXIST;
- goto out_hash_destroy;
- }
+ BUG_ON(radix_tree_insert(&mp->m_perag_tree, index, pag));
spin_unlock(&mp->m_perag_lock);
radix_tree_preload_end();
/* first new pag is fully initialized */
--
2.6.2


2019-08-22 10:27:43

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] xfs: Use BUG_ON rather than BUG() to remove unreachable code

Depending on the config BUG() might be a no-op. Outside of filesystems
everyone ignores that and crashes ungracefully, but in filesystems they
don't want to risk corrupting your files.

regards,
dan carpenter

2019-08-22 20:06:54

by Darrick J. Wong

[permalink] [raw]
Subject: Re: [PATCH] xfs: Use BUG_ON rather than BUG() to remove unreachable code

On Thu, Aug 22, 2019 at 03:23:20PM +0900, Austin Kim wrote:
> Code after BUG is unreachable since system would be crashed
> after the call to BUG is made.
> So change BUG_ON instead of BUG() to remove unreachable code.
> ---
> fs/xfs/xfs_mount.c | 8 +-------
> 1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
> index 322da69..a681808 100644
> --- a/fs/xfs/xfs_mount.c
> +++ b/fs/xfs/xfs_mount.c
> @@ -213,13 +213,7 @@ xfs_initialize_perag(
> goto out_hash_destroy;
>
> spin_lock(&mp->m_perag_lock);
> - if (radix_tree_insert(&mp->m_perag_tree, index, pag)) {
> - BUG();
> - spin_unlock(&mp->m_perag_lock);
> - radix_tree_preload_end();
> - error = -EEXIST;
> - goto out_hash_destroy;
> - }
> + BUG_ON(radix_tree_insert(&mp->m_perag_tree, index, pag));

/me thinks this should WARN on the insertion error but otherwise
preserve the existing bailout behavior, since we can always fail the
mount or shutdown the fs and move on....

--D

> spin_unlock(&mp->m_perag_lock);
> radix_tree_preload_end();
> /* first new pag is fully initialized */
> --
> 2.6.2
>