Patch "selftests/mount_setattr: Fix failures on 64K PAGE_SIZE kernels" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    selftests/mount_setattr: Fix failures on 64K PAGE_SIZE kernels

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     selftests-mount_setattr-fix-failures-on-64k-page_siz.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit ea5af68aa289babbf70d39afd1d7699fe8a24dfe
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date:   Sat Nov 16 00:41:14 2024 +1100

    selftests/mount_setattr: Fix failures on 64K PAGE_SIZE kernels
    
    [ Upstream commit f13242a46438e690067a4bf47068fde4d5719947 ]
    
    Currently the mount_setattr_test fails on machines with a 64K PAGE_SIZE,
    with errors such as:
    
      #  RUN           mount_setattr_idmapped.invalid_fd_negative ...
      mkfs.ext4: No space left on device while writing out and closing file system
      # mount_setattr_test.c:1055:invalid_fd_negative:Expected system("mkfs.ext4 -q /mnt/C/ext4.img") (256) == 0 (0)
      # invalid_fd_negative: Test terminated by assertion
      #          FAIL  mount_setattr_idmapped.invalid_fd_negative
      not ok 12 mount_setattr_idmapped.invalid_fd_negative
    
    The code creates a 100,000 byte tmpfs:
    
            ASSERT_EQ(mount("testing", "/mnt", "tmpfs", MS_NOATIME | MS_NODEV,
                            "size=100000,mode=700"), 0);
    
    And then a little later creates a 2MB ext4 filesystem in that tmpfs:
    
            ASSERT_EQ(ftruncate(img_fd, 1024 * 2048), 0);
            ASSERT_EQ(system("mkfs.ext4 -q /mnt/C/ext4.img"), 0);
    
    At first glance it seems like that should never work, after all 2MB is
    larger than 100,000 bytes. However the filesystem image doesn't actually
    occupy 2MB on "disk" (actually RAM, due to tmpfs). On 4K kernels the
    ext4.img uses ~84KB of actual space (according to du), which just fits.
    
    However on 64K PAGE_SIZE kernels the ext4.img takes at least 256KB,
    which is too large to fit in the tmpfs, hence the errors.
    
    It seems fraught to rely on the ext4.img taking less space on disk than
    the allocated size, so instead create the tmpfs with a size of 2MB. With
    that all 21 tests pass on 64K PAGE_SIZE kernels.
    
    Fixes: 01eadc8dd96d ("tests: add mount_setattr() selftests")
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20241115134114.1219555-1-mpe@xxxxxxxxxxxxxx
    Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@xxxxxxxxx>
    Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/testing/selftests/mount_setattr/mount_setattr_test.c b/tools/testing/selftests/mount_setattr/mount_setattr_test.c
index c6a8c732b8021..304e6422a1f1c 100644
--- a/tools/testing/selftests/mount_setattr/mount_setattr_test.c
+++ b/tools/testing/selftests/mount_setattr/mount_setattr_test.c
@@ -1026,7 +1026,7 @@ FIXTURE_SETUP(mount_setattr_idmapped)
 			"size=100000,mode=700"), 0);
 
 	ASSERT_EQ(mount("testing", "/mnt", "tmpfs", MS_NOATIME | MS_NODEV,
-			"size=100000,mode=700"), 0);
+			"size=2m,mode=700"), 0);
 
 	ASSERT_EQ(mkdir("/mnt/A", 0777), 0);
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux