summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2022-04-28 11:39:12 +0200
committerMatthew Heon <matthew.heon@pm.me>2022-05-03 13:36:00 -0400
commite5d6b6b0a2cfdbb21506b8f5e741cf719c149cb4 (patch)
tree25b5d7c4451f702c7c7162116139ac6297888744 /test
parent77f147468c4bf514dd5a2951a29128f226d1186c (diff)
downloadpodman-e5d6b6b0a2cfdbb21506b8f5e741cf719c149cb4.tar.gz
podman-e5d6b6b0a2cfdbb21506b8f5e741cf719c149cb4.tar.bz2
podman-e5d6b6b0a2cfdbb21506b8f5e741cf719c149cb4.zip
volume: add new option -o o=noquota
add a new option to completely disable xfs quota usage for a volume. xfs quota set on a volume, even just for tracking disk usage, can cause weird errors if the volume is later re-used by a container with a different quota projid. More specifically, link(2) and rename(2) might fail with EXDEV if the source file has a projid that is different from the parent directory. To prevent such kind of issues, the volume should be created beforehand with `podman volume create -o o=noquota $ID` Closes: https://github.com/containers/podman/issues/14049 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'test')
-rwxr-xr-xtest/test_podman_baseline.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/test_podman_baseline.sh b/test/test_podman_baseline.sh
index 5a420fe60..5ef2d1bda 100755
--- a/test/test_podman_baseline.sh
+++ b/test/test_podman_baseline.sh
@@ -309,6 +309,28 @@ else
echo "Overlay test within limits failed"
fi
+before=`xfs_quota -x -c 'report -N -p' $TMPDIR | grep -c ^#`
+podman $PODMANBASE volume create -o o=noquota test-no-quota
+after=`xfs_quota -x -c 'report -N -p' $TMPDIR | grep -c ^#`
+
+if [ $before != $after ];
+then
+ echo "Test -o=noquota doesn't create a projid failed"
+else
+ echo "Test -o=noquota doesn't create a projid passed"
+fi
+
+before=`xfs_quota -x -c 'report -N -p' $TMPDIR | grep -c ^#`
+podman $PODMANBASE volume create -o test-no-quota
+after=`xfs_quota -x -c 'report -N -p' $TMPDIR | grep -c ^#`
+
+if [ $before == $after ];
+then
+ echo "Test without -o=noquota creates a projid failed"
+else
+ echo "Test without -o=noquota creates a projid passed"
+fi
+
########
# Expected to fail
########