Message ID | 20190822062320.GA35267@LGEARND20B15 (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | xfs: Use BUG_ON rather than BUG() to remove unreachable code | expand |
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
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 >
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 */