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.