From patchwork Thu Apr 6 05:43:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Goldstein X-Patchwork-Id: 9666045 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 08395602B8 for ; Thu, 6 Apr 2017 05:43:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EDF54284CF for ; Thu, 6 Apr 2017 05:43:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E3179284FE; Thu, 6 Apr 2017 05:43:54 +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 67311284CF for ; Thu, 6 Apr 2017 05:43:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755742AbdDFFny (ORCPT ); Thu, 6 Apr 2017 01:43:54 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:36703 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755606AbdDFFnx (ORCPT ); Thu, 6 Apr 2017 01:43:53 -0400 Received: by mail-wr0-f193.google.com with SMTP id o21so2895553wrb.3; Wed, 05 Apr 2017 22:43:52 -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=bD8UjvTFzzeh8zNxmtF+PCpTtJM6rAdpooU+KwUNhrvAIfweoJpZIfKLtyQzmivQIy mHmlCxFP53lFsdy35rKWuucUAZGsVZYw81nlAnNPE2y86KLEsp+J186LiiYqHXgu0rR6 4HTTay5b+9Jp82ybtLaOCV7buMipY9utKPbjp6ioF/JSgq3NwxXtE6h7H1eAwMePANkG WuxkslQlche2cvlXapuXnfR9LK8OprKZBmDMW6iAQOxSi24BffyaWCD1noaEnmY/skSU 7gS/jBrZVztKe/WZPtpsAE3fpC2DSHPTI+vIb79XTKaw2RX9EOu4lGBUtuzKmpxpycNB lYGg== 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=C6onmF8jQ+Fa1bk0qb//OY8WSq0vKrs6f9dbn/jetwGHryk2Q6JcZFo57+Jqoo+3tU BLDkI5e78jmRoUkT0jE3XVU4NHkElEgNXo06+g9/R65TmaTjnHK7iFqjgDJ/1nv/WUg6 nhxpDsGXznsSwTYiFRRQ6+LANuoLC8WfjzjnEaqIbBB3SFIg+yDgdtZ7kvife0g78bPR Hs1HfwkYjBTlnB1atTkQv7TTbxr/kH/noBm6uTrQYvbVNVzkqGCl0jDWFT5RoSd+0DdU MldAbjDmxLTCVfyjupR06lOfoHzxBUTXQ6g9NTO7gNoiMY7GIWQ7TqPGda3qXkQBMM+x +SlQ== X-Gm-Message-State: AFeK/H0WEnvWkFwQHMzV5EXoNhqQLqQLAKzjm20hOP/06t52w0F/he956wazKftvFm032A== X-Received: by 10.223.164.210 with SMTP id h18mr26833253wrb.128.1491457431166; Wed, 05 Apr 2017 22:43:51 -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 r5sm657181wra.50.2017.04.05.22.43.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 05 Apr 2017 22:43:50 -0700 (PDT) From: Amir Goldstein To: Eryu Guan Cc: Miklos Szeredi , Xiong Zhou , linux-unionfs@vger.kernel.org, fstests@vger.kernel.org Subject: [PATCH v3 3/3] overlay/030: test immutable and append-only upper files Date: Thu, 6 Apr 2017 08:43:54 +0300 Message-Id: <1491457434-7359-3-git-send-email-amir73il@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491457434-7359-1-git-send-email-amir73il@gmail.com> References: <1491457434-7359-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