]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ext4: free orphan info with kvfree
authorJan Kara <jack@suse.cz>
Tue, 7 Oct 2025 13:49:37 +0000 (15:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 19 Oct 2025 14:21:49 +0000 (16:21 +0200)
commit 971843c511c3c2f6eda96c6b03442913bfee6148 upstream.

Orphan info is now getting allocated with kvmalloc_array(). Free it with
kvfree() instead of kfree() to avoid complaints from mm.

Reported-by: Chris Mason <clm@meta.com>
Fixes: 0a6ce20c1564 ("ext4: verify orphan file size is not too big")
Cc: stable@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
Message-ID: <20251007134936.7291-2-jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/orphan.c

index dadb34964c621342fb16afae56d7d8a439be0c73..836db28c4cd260720ab8748574d42d96f2e699e8 100644 (file)
@@ -513,7 +513,7 @@ void ext4_release_orphan_info(struct super_block *sb)
                return;
        for (i = 0; i < oi->of_blocks; i++)
                brelse(oi->of_binfo[i].ob_bh);
-       kfree(oi->of_binfo);
+       kvfree(oi->of_binfo);
 }
 
 static struct ext4_orphan_block_tail *ext4_orphan_block_tail(
@@ -638,7 +638,7 @@ int ext4_init_orphan_info(struct super_block *sb)
 out_free:
        for (i--; i >= 0; i--)
                brelse(oi->of_binfo[i].ob_bh);
-       kfree(oi->of_binfo);
+       kvfree(oi->of_binfo);
 out_put:
        iput(inode);
        return ret;