]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
common: Do not chown ro mountpoint when creating idmapped mount
authorGabriel Niebler <gniebler@suse.com>
Fri, 3 Feb 2023 14:35:45 +0000 (15:35 +0100)
committerZorro Lang <zlang@kernel.org>
Sat, 11 Feb 2023 04:35:21 +0000 (12:35 +0800)
The function _idmapped_mount tries to change the ownership of the mountpoint
for which it aims to create an idmapped mount, to ensure that the mapped UID
and GID can actually create objects within it. Some tests set up a read-only
mount, however, which lets the chown call fail. This patch fixes the
function to check whether the mount is read-only and skip the chown, if so.

Signed-off-by: Gabriel Niebler <gniebler@suse.com>
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Zorro Lang <zlang@kernel.org>
common/rc

index 0936795e94be0ce35aa3817b246364e4fb6dc87e..d65d52e6f70175bfa2352eff2bb70927b5ee60a0 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -414,8 +414,11 @@ _idmapped_mount()
 
        # We create an idmapped mount where {g,u}id 0 writes to disk as
        # {g,u}id 10000000 and $(id -u fsgqa) + 10000000. We change ownership
-        # of $mnt so {g,u} id 0 can actually create objects in there.
-       chown 10000000:10000000 $mnt || return 1
+       # of $mnt, provided it's not read-only, so {g,u} id 0 can actually
+       # create objects in there.
+       if [[ "$mount_rec" != *"ro,"* && "$mount_rec" != *",ro"* ]]; then
+               chown 10000000:10000000 $mnt || return 1
+       fi
        $here/src/vfs/mount-idmapped \
                --map-mount b:10000000:0:100000000000 \
                $mnt $tmp