From 2461e8901c9c131ef515464a6595838bf1b608ec Mon Sep 17 00:00:00 2001 From: Shreeya Patel Date: Mon, 3 May 2021 15:56:54 +0530 Subject: [PATCH] generic/631: Add a check for extended attributes Test case 631 fails for filesystems like exfat or vfat or any other which does not support extended attributes. The main reason for failure is not being able to mount overlayfs with filesystems that do not support extended attributes. mount -t overlay overlay -o "$l,$u,$w,$i" $mergedir Above command would return an error as - /var/mnt/scratch/merged0: wrong fs type, bad option, bad superblock on overlay, missing codepage or helper program, or other error. dmesg log reports the following - overlayfs: filesystem on '/var/mnt/scratch/upperdir1' not supported As per the overlayfs documentation - "A wide range of filesystems supported by Linux can be the lower filesystem, but not all filesystems that are mountable by Linux have the features needed for OverlayFS to work. The lower filesystem does not need to be writable. The lower filesystem can even be another overlayfs. The upper filesystem will normally be writable and if it is it must support the creation of trusted.* and/or user.* extended attributes, and must provide valid d_type in readdir responses, so NFS is not suitable. A read-only overlay of two read-only filesystems may use any filesystem type." As per the above statements from the overlayfs documentation, it is clear that filesystems that do not support extended attributes or d_type would not work with overlayfs. This is why we see the error in dmesg log for upperdir1 which had an exfat filesystem. This test case already checks for d_type but does not check for extended attributes, hence add a check for it which would avoid running this tests for filesystems that are not supported. Signed-off-by: Shreeya Patel Reviewed-by: Darrick J. Wong Signed-off-by: Eryu Guan --- tests/generic/631 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/generic/631 b/tests/generic/631 index 0fa47e49..a4f42f03 100755 --- a/tests/generic/631 +++ b/tests/generic/631 @@ -39,10 +39,12 @@ _cleanup() # get standard environment, filters and checks . ./common/rc +. ./common/attr # real QA test starts here _supported_fs generic _require_scratch +_require_attrs test "$FSTYP" = "overlay" && _notrun "Test does not apply to overlayfs." _require_extra_fs overlay -- 2.39.5