generic/317,318: fail gracefully if userns not supported

generic/317 and generic/318 fail un-gracefully on older kernels
which don't support userns; fix that by running a simple test
as a prerequisite and fail gracefully if needed.

Roll that in with the test for executable presence, and make
a new _require_userns()

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Eric Sandeen
2014-06-18 09:34:39 +10:00
committed by Dave Chinner
parent bbe5d55a0b
commit c728752cfa
3 changed files with 8 additions and 3 deletions
+6
View File
@@ -2132,6 +2132,12 @@ _require_relatime()
_scratch_unmount
}
_require_userns()
{
[ -x src/nsexec ] || _notrun "src/nsexec executable not found"
src/nsexec -U true 2>/dev/null || _notrun "userns not supported by this kernel"
}
_create_loop_device()
{
file=$1
+1 -1
View File
@@ -53,7 +53,6 @@ _supported_fs generic
# only Linux supports user namespace
_supported_os Linux
[ -x $nsexec ] || _notrun "$nsexec executable not found"
[ -x $lstat64 ] || _notrun "$lstat64 executable not found"
rm -f $seqres.full
@@ -62,6 +61,7 @@ _require_scratch
_need_to_be_root
_require_user
_require_ugid_map
_require_userns
qa_user_id=`grep $qa_user /etc/passwd |awk -F: '{print $3}'`
_filter_output()
+1 -2
View File
@@ -55,8 +55,6 @@ _supported_fs generic
# only Linux supports user namespace
_supported_os Linux
[ -x $nsexec ] || _notrun "$nsexec executable not found"
rm -f $seqres.full
_require_scratch
@@ -64,6 +62,7 @@ _need_to_be_root
_acl_setup_ids
_require_acls
_require_ugid_map
_require_userns
ns_acl1=0
ns_acl2=`expr $acl2 - $acl1`
ns_acl3=`expr $acl3 - $acl1`