| #! /bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| # Copyright (c) 2016 Red Hat Inc. All Rights Reserved. |
| # |
| # FS QA Test 003 |
| # |
| # Test overlayfs basic whiteout. |
| # |
| # Overlayfs whiteout can be visible if underlying upper fs does not |
| # support d_type. Kernel commit |
| # 45aebea (ovl: Ensure upper filesystem supports d_type) |
| # prevents mounting overlayfs like this since v4.6-rc1. |
| # No harm to keep this test as a sanity check. |
| # |
| . ./common/preamble |
| _begin_fstest auto quick whiteout |
| |
| # Import common functions. |
| . ./common/filter |
| |
| # real QA test starts here |
| |
| # Modify as appropriate. |
| _supported_fs overlay |
| _require_scratch |
| |
| # Remove all files from previous tests |
| _scratch_mkfs |
| |
| # Create test files dirs in lower dir |
| lowerdir=${OVL_BASE_SCRATCH_MNT}/${OVL_LOWER} |
| mkdir -p $lowerdir |
| |
| touch ${lowerdir}/test_file |
| ln -s ${lowerdir}/test_file ${lowerdir}/test_softlink_file |
| ln ${lowerdir}/test_file ${lowerdir}/test_hardlink_file |
| |
| mkdir -p ${lowerdir}/test_dir |
| ln -s ${lowerdir}/test_dir ${lowerdir}/test_softlink_dir |
| |
| mknod ${lowerdir}/test_cdev c 2 3 |
| ln -s ${lowerdir}/test_cdev ${lowerdir}/test_softlink_cdev |
| ln ${lowerdir}/test_cdev ${lowerdir}/test_hardlink_cdev |
| |
| mknod ${lowerdir}/test_bdev b 2 4 |
| ln -s ${lowerdir}/test_bdev ${lowerdir}/test_softlink_bdev |
| ln ${lowerdir}/test_bdev ${lowerdir}/test_hardlink_bdev |
| |
| mknod ${lowerdir}/test_pipe p |
| ln -s ${lowerdir}/test_pipe ${lowerdir}/test_softlink_pipe |
| ln ${lowerdir}/test_pipe ${lowerdir}/test_hardlink_pipe |
| |
| _scratch_mount |
| |
| # whiteout all files in overlay mountpoint |
| rm -rf ${SCRATCH_MNT}/* |
| # nothing should be listed |
| ls ${SCRATCH_MNT}/ |
| |
| # unmount overlayfs but not base fs |
| $UMOUNT_PROG $SCRATCH_MNT |
| |
| echo "Silence is golden" |
| # success, all done |
| status=0 |
| exit |