On Thu, Aug 29, 2019 at 12:56:55AM -0700, Christoph Hellwig wrote: > On Wed, Aug 28, 2019 at 03:47:49PM +0900, Austin Kim wrote: > > If the CONFIG_BUG is enabled, BUG() is executed and then system is crashed. > > However, the bailout for mount is no longer proceeding. > > > > For this reason, using WARN_ON rather than BUG() could prevent this situation. > > --- > > fs/xfs/xfs_mount.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c > > index 322da69..10fe000 100644 > > --- a/fs/xfs/xfs_mount.c > > +++ b/fs/xfs/xfs_mount.c > > @@ -213,8 +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(); > > + if (WARN_ON(radix_tree_insert(&mp->m_perag_tree, index, pag))){ > > Please make this a WARN_ON_ONCE so that we don't see a flodding of > messages in case of this error. How would it flood? If the radix tree insertion fails we dump all the pag structures and fail log recovery / mount / growfs. I suppose if one were out of memory and hammering the system hard with repeated mount calls... --D