From patchwork Thu Apr 6 05:49:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Goldstein X-Patchwork-Id: 9666051 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id D57C7602B8 for ; Thu, 6 Apr 2017 05:49:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C720C284FE for ; Thu, 6 Apr 2017 05:49:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BC0B72856E; Thu, 6 Apr 2017 05:49:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4BBA0284FE for ; Thu, 6 Apr 2017 05:49:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754886AbdDFFtT (ORCPT ); Thu, 6 Apr 2017 01:49:19 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:35296 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754176AbdDFFtT (ORCPT ); Thu, 6 Apr 2017 01:49:19 -0400 Received: by mail-wr0-f195.google.com with SMTP id t20so8044156wra.2; Wed, 05 Apr 2017 22:49:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lkW6woYvQDCyPOa04ig3BYvong7A7a5OHxVSPkMq6XM=; b=OjtnvY239e/DI5UNZ90KVB/jNapp4wQpOj4Vx+YGghhCSlBWtfEmBXgYpXYv+Csb6i s1H34t1sC0nsK5AiET8s6WAr0ylFOijF40F17LxdGgVgUJIZQbaOb2fWPpJDaUM89g/J g5sGwpimENE65b18b5LNuyiL4zw17z3/axypV7kS+PMEHzwfUA/f/2SxjoWKecCPwPo+ 3yf8LF4ebcz1niT0iOLP3/I5eJ9TagVSs/daDxxiMfoYrUeKd+N436YXaCqhRHF1xQtU 1EanfmP8jOsM3Kf4OovVgYG2SyvlyLZIJ3fGiWtEFq883dXx6BNEeHSOQ/TYmKC37NgV weWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lkW6woYvQDCyPOa04ig3BYvong7A7a5OHxVSPkMq6XM=; b=JhIWG1O4qiwN2C6uBd/VEDJSQDNlDX9eSCCB3NV5MXcSxKqgzduzd6q5S1THkhDxxs 1ieXP68/JqY/i4WiDv8vE/3EkOzGYI6SNurHs/Me/D4ghjlngTCrMYbmAn2At+pyP0q5 VLK+XekPHrpzAcJu/QJWfi73Y3FCaoLpvNIVoAlA84fNx/NYSzRqGzp0qVzLmr1jt6we GGAS6gMBFfBmHDPE+uHHXdLIsxt7A9ANI0kGUIJpeASXoht9L4ZBpPI6sn+7z9JEU+45 NHCA7y/QKzFeOOQA9zcYPxjM20MOmJESD+GqBrt7ZdJF5eplmLxAAKm64xILMXmbtiY3 sxIg== X-Gm-Message-State: AN3rC/59iHsg0WgZ25RAwxkI52g4Q3ji0OxIghRcTuuw2QNxvqekbnLkwGvWVuPesQYmUQ== X-Received: by 10.28.153.4 with SMTP id b4mr3189235wme.58.1491457757430; Wed, 05 Apr 2017 22:49:17 -0700 (PDT) Received: from amir-VirtualBox.lan (bzq-79-176-107-16.red.bezeqint.net. [79.176.107.16]) by smtp.gmail.com with ESMTPSA id l90sm24983968wmi.25.2017.04.05.22.49.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 05 Apr 2017 22:49:16 -0700 (PDT) From: Amir Goldstein To: Eryu Guan Cc: Miklos Szeredi , Xiong Zhou , linux-unionfs@vger.kernel.org, fstests@vger.kernel.org Subject: [PATCH v4 3/3] overlay/030: test immutable and append-only upper files Date: Thu, 6 Apr 2017 08:49:20 +0300 Message-Id: <1491457760-9240-3-git-send-email-amir73il@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491457760-9240-1-git-send-email-amir73il@gmail.com> References: <1491457760-9240-1-git-send-email-amir73il@gmail.com> Sender: fstests-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Run the t_immutable test program for immutable/append-only files and directories in an overlayfs upper directory. This test is similar and was derived from generic/079, but the original test is _notrun on overlay mount because FS_IOC_GETFLAGS FS_IOC_SETFLAGS ioctls fail on overlay directory inodes. Signed-off-by: Amir Goldstein --- tests/overlay/030 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++ tests/overlay/030.out | 5 ++++ tests/overlay/group | 1 + 3 files changed, 79 insertions(+) create mode 100755 tests/overlay/030 create mode 100644 tests/overlay/030.out Eryu, My previous statement that overlayfs does not enforce directory immutable directory inodes was wrong. The directory tests do pass because overlayfs does the right thing. So only failures are for open(O_TRUNC) and truncate() of IS_APPEND regular file inodes, which shouldn't be too hard to fix: QA output created by 030 open(/mnt/scratch/ovl-mnt/t_immutable/append-only.f, O_RDWR) did not fail open(/mnt/scratch/ovl-mnt/t_immutable/append-only.f, O_WRONLY) did not fail open(/mnt/scratch/ovl-mnt/t_immutable/append-only.f, O_RDWR|O_TRUNC) did not fail open(/mnt/scratch/ovl-mnt/t_immutable/append-only.f, O_WRONLY|O_TRUNC) did not fail open(/mnt/scratch/ovl-mnt/t_immutable/append-only.f, O_RDWR|O_APPEND|O_TRUNC) did not fail open(/mnt/scratch/ovl-mnt/t_immutable/append-only.f, O_WRONLY|O_APPEND|O_TRUNC) did not fail truncate(/mnt/scratch/ovl-mnt/t_immutable/append-only.f, 0) did not fail testing immutable...PASS. testing append-only...FAILED! (7 tests failed) diff --git a/tests/overlay/030 b/tests/overlay/030 new file mode 100755 index 0000000..bbce140 --- /dev/null +++ b/tests/overlay/030 @@ -0,0 +1,73 @@ +#! /bin/bash +# FS QA Test No. 030 +# +# Run the t_immutable test program for immutable/append-only files +# and directories in an overlayfs upper directory. +# +# This test is similar and was derived from generic/079, but +# the original test is _notrun on overlay mount because FS_IOC_GETFLAGS +# FS_IOC_SETFLAGS ioctls fail on overlay directory inodes. +# +#----------------------------------------------------------------------- +# Copyright (C) 2017 CTERA Networks. All Rights Reserved. +# Author: Amir Goldstein +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#----------------------------------------------------------------------- +# + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +timmutable=$here/src/t_immutable +upperdir=$OVL_BASE_SCRATCH_MNT/$OVL_UPPER +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + $timmutable -r $upperdir/t_immutable &> /dev/null + rm -f $tmp.* +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter + +_supported_fs overlay +_supported_os Linux + +_require_chattr ia +_require_test_program "t_immutable" +_require_scratch + +_scratch_mkfs + +# Preparing immutable files in uppper dir +mkdir -p $upperdir +$timmutable -C $upperdir/t_immutable >$tmp.out 2>&1 +if grep -q -e 'Operation not supported' -e "Inappropriate ioctl" $tmp.out; then + _notrun "Setting immutable/append flag not supported" +fi + +_scratch_mount + +# Test immutability of files in overlay +$timmutable $SCRATCH_MNT/t_immutable 2>&1 +status=$? +exit diff --git a/tests/overlay/030.out b/tests/overlay/030.out new file mode 100644 index 0000000..57ba0cd --- /dev/null +++ b/tests/overlay/030.out @@ -0,0 +1,5 @@ +QA output created by 030 +testing immutable...PASS. +testing append-only...PASS. +testing immutable as non-root...PASS. +testing append-only as non-root...PASS. diff --git a/tests/overlay/group b/tests/overlay/group index 7e72a30..c5048c4 100644 --- a/tests/overlay/group +++ b/tests/overlay/group @@ -32,3 +32,4 @@ 027 auto quick perms 028 auto copyup quick 029 auto quick +030 auto quick perms