]> www.infradead.org Git - users/hch/block.git/commitdiff
ext4: only initialize mmp_bdevname once
authorChristoph Hellwig <hch@lst.de>
Tue, 12 Jul 2022 05:40:13 +0000 (07:40 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 12 Jul 2022 05:49:23 +0000 (07:49 +0200)
mmp_bdevname is currently both initialized nested inside the kthread_run
call in ext4_multi_mount_protect and in the kmmpd thread started by it.

Lift the initiaization out of the kthread_run call in
ext4_multi_mount_protect, move the BUILD_BUG_ON next to it and remove
the duplicate assignment inside of kmmpd.

Signed-off-by: Christoph Hellwig <hch@lst.de>
fs/ext4/mmp.c

index 79d05e464c432594aeed09ad0f8c3a1c3101a592..b7a850b0070b83b69fe68df59b499c56b0b62cf0 100644 (file)
@@ -150,8 +150,6 @@ static int kmmpd(void *data)
        mmp_check_interval = max(EXT4_MMP_CHECK_MULT * mmp_update_interval,
                                 EXT4_MMP_MIN_CHECK_INTERVAL);
        mmp->mmp_check_interval = cpu_to_le16(mmp_check_interval);
-       BUILD_BUG_ON(sizeof(mmp->mmp_bdevname) < BDEVNAME_SIZE);
-       bdevname(bh->b_bdev, mmp->mmp_bdevname);
 
        memcpy(mmp->mmp_nodename, init_utsname()->nodename,
               sizeof(mmp->mmp_nodename));
@@ -372,13 +370,15 @@ skip:
 
        EXT4_SB(sb)->s_mmp_bh = bh;
 
+       BUILD_BUG_ON(sizeof(mmp->mmp_bdevname) < BDEVNAME_SIZE);
+       bdevname(bh->b_bdev, mmp->mmp_bdevname);
+
        /*
         * Start a kernel thread to update the MMP block periodically.
         */
        EXT4_SB(sb)->s_mmp_tsk = kthread_run(kmmpd, sb, "kmmpd-%.*s",
                                             (int)sizeof(mmp->mmp_bdevname),
-                                            bdevname(bh->b_bdev,
-                                                     mmp->mmp_bdevname));
+                                            mmp->mmp_bdevname);
        if (IS_ERR(EXT4_SB(sb)->s_mmp_tsk)) {
                EXT4_SB(sb)->s_mmp_tsk = NULL;
                ext4_warning(sb, "Unable to create kmmpd thread for %s.",