xfs: free xfs_attrd_log_items correctly
authorDarrick J. Wong <djwong@kernel.org>
Fri, 20 May 2022 04:42:49 +0000 (14:42 +1000)
committerDave Chinner <david@fromorbit.com>
Fri, 20 May 2022 04:42:49 +0000 (14:42 +1000)
Technically speaking, objects allocated out of a specific slab cache are
supposed to be freed to that slab cache.  The popular slab backends will
take care of this for us, but SLOB famously doesn't.  Fix this, even if
slob + xfs are not that common of a combination.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_attr_item.c

index 4976b1d..4f1ee8b 100644 (file)
@@ -233,7 +233,7 @@ STATIC void
 xfs_attrd_item_free(struct xfs_attrd_log_item *attrdp)
 {
        kmem_free(attrdp->attrd_item.li_lv_shadow);
-       kmem_free(attrdp);
+       kmem_cache_free(xfs_attrd_cache, attrdp);
 }
 
 STATIC void