On Wed, Jan 08, 2020 at 12:51:31AM -0800, Christoph Hellwig wrote: > On Tue, Jan 07, 2020 at 08:18:19PM -0800, Darrick J. Wong wrote: > > diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c > > index 3984779e5911..bfbe8a5b8959 100644 > > --- a/fs/xfs/xfs_buf_item.c > > +++ b/fs/xfs/xfs_buf_item.c > > @@ -761,18 +761,25 @@ xfs_buf_item_init( > > * buffer. This makes the implementation as simple as possible. > > */ > > error = xfs_buf_item_get_format(bip, bp->b_map_count); > > - ASSERT(error == 0); > > - if (error) { /* to stop gcc throwing set-but-unused warnings */ > > - kmem_cache_free(xfs_buf_item_zone, bip); > > - return error; > > + if (error) { > > + xfs_err(mp, "could not allocate buffer item, err=%d", error); > > + goto err; > > } > > The error handling here is weird, as xfs_buf_item_get_format can't fail > to start with. I'd rather see a prep patch removing the bogus check > for the kmem_zalloc and change the return value from > xfs_buf_item_get_format to void. > > Otherwise the patch looks good. Ok. --D