Merge tag 'mm-nonmm-stable-2023-08-28-22-48' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / fs / ocfs2 / journal.c
index c19c730..e8e7d47 100644 (file)
@@ -114,9 +114,9 @@ int ocfs2_compute_replay_slots(struct ocfs2_super *osb)
        if (osb->replay_map)
                return 0;
 
-       replay_map = kzalloc(sizeof(struct ocfs2_replay_map) +
-                            (osb->max_slots * sizeof(char)), GFP_KERNEL);
-
+       replay_map = kzalloc(struct_size(replay_map, rm_replay_slots,
+                                        osb->max_slots),
+                            GFP_KERNEL);
        if (!replay_map) {
                mlog_errno(-ENOMEM);
                return -ENOMEM;
@@ -178,16 +178,13 @@ int ocfs2_recovery_init(struct ocfs2_super *osb)
        osb->recovery_thread_task = NULL;
        init_waitqueue_head(&osb->recovery_event);
 
-       rm = kzalloc(sizeof(struct ocfs2_recovery_map) +
-                    osb->max_slots * sizeof(unsigned int),
+       rm = kzalloc(struct_size(rm, rm_entries, osb->max_slots),
                     GFP_KERNEL);
        if (!rm) {
                mlog_errno(-ENOMEM);
                return -ENOMEM;
        }
 
-       rm->rm_entries = (unsigned int *)((char *)rm +
-                                         sizeof(struct ocfs2_recovery_map));
        osb->recovery_map = rm;
 
        return 0;