Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3471380imm; Tue, 29 May 2018 07:50:02 -0700 (PDT) X-Google-Smtp-Source: ADUXVKL1DunXaooWsl89g2we03XTBjrG3g94InZl3CI6Zl2QNN074P+TdHqXsm0ZMsFBgTeA3i6N X-Received: by 2002:a65:43c9:: with SMTP id n9-v6mr7838523pgp.399.1527605401864; Tue, 29 May 2018 07:50:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527605401; cv=none; d=google.com; s=arc-20160816; b=zoISEtBKH1wtv2CcgWE8LYjXQ4mdUEZ5+EDKHRmruH2UqL79hLWRe/p1zDj0ow5ZOE qXpEKpQRfwGxvHjtSBwUwyyg1zEay1SOOGuyM9xgyFBhWTvMg98LSueHWDiiU3AXcV6N UhBUtMoamUZVYloAbkBY2tYUoF/ruqziOPHgu37E6I/DMTyVR6tv4urTHmyt2Lua/ufs 4+JbHUZFOADJw8DXwY6Hhh+ayivKQV7qRWtQxosKtJfpqDIevr4hEWxziWAOgHnQUAFM ZHZ5773pwjenfEhk88YfRnTNG/rI4IN9FxG5B9pdEr2eADaZu4rJHXn0kejrAASK8qxq 6Z5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=xGo7eNmKjZvUsnw/kUnOZF2NEEXkV+721D6Zyf0WakQ=; b=n6c4SGL8QadvA2o/gt9FWgWZiZJ/ylzlJE2W91n3wPMj5ZsuRMtjPEXwjx08PB9syj +O8uyrM39eMUrmKPV39cyORZL+/JXysjqMnE0Jn2UTPGYDbRvGLnr9sDEmsp8f1XnDEa uJYeHfENOycY32BsXrTuluRK6o0pbpsbX3NDpi84IpgShXj9i4cJgYCAkuJVK9VkDIpt bCBuDVEuIWtsXRtHfflfvxxEQRB6DxYrX5yDgF9UzniPu79ghcQ5u8u4hn2oiP5Kpj0f STc98lZ6vqc2MH7a6iOyp6qeTjZn+NSf3W7iArLdsnHmfoGcbiez7+sW8S08eipSeOMo qCew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 24-v6si33143271pfp.161.2018.05.29.07.49.47; Tue, 29 May 2018 07:50:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935506AbeE2Osf (ORCPT + 99 others); Tue, 29 May 2018 10:48:35 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:34250 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936688AbeE2Oqt (ORCPT ); Tue, 29 May 2018 10:46:49 -0400 Received: by mail-wr0-f195.google.com with SMTP id j1-v6so26003413wrm.1 for ; Tue, 29 May 2018 07:46:48 -0700 (PDT) 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=xGo7eNmKjZvUsnw/kUnOZF2NEEXkV+721D6Zyf0WakQ=; b=er1tfyhwl48y1u9rYUBiKPrqV2cogeSMMDTQWa+9kzRDEWmEbBasj4QV1F4iQIY9r2 sbKssSRhM6QL30TShyMlkbGh/GmcTf2b9n2MXkubDe2lqyZBq++Wf8iOf65jdHBqjo5w 6t9tn+M1cZNZQYzsUobroBieMpiZ7nN9Otq7cCRJxA6XI97IWmljhqe3XMXcLPG/94hk RL1HoJc4j3tpAojjkZFlyXpPt499uNheRB+Acge3PXOEuapAO8EIr4NtYIIwdPjRrDcI 2WLI4CYKcP8otUcHw9BJoCQG1kNDR5MqPpDIWQQv9h5hc+4ZC6Amlaevzfk8VaZdPlrn ST1A== X-Gm-Message-State: ALKqPwce6Cwhu6sjsU5H3sk/sSbqONlm4/zeDIbxtGB2vbnpcMfXnxvp cPyiIskK+T23RO7vp4OOqnsaUenyz0U= X-Received: by 2002:adf:a6f8:: with SMTP id t111-v6mr13447867wrc.161.1527605208307; Tue, 29 May 2018 07:46:48 -0700 (PDT) Received: from veci.piliscsaba.redhat.com (catv-176-63-54-97.catv.broadband.hu. [176.63.54.97]) by smtp.gmail.com with ESMTPSA id n71-v6sm20942227wmi.14.2018.05.29.07.46.47 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 May 2018 07:46:47 -0700 (PDT) From: Miklos Szeredi To: linux-unionfs@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 27/28] ovl: Do not do metacopy only for ioctl modifying file attr Date: Tue, 29 May 2018 16:46:11 +0200 Message-Id: <20180529144612.16675-28-mszeredi@redhat.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180529144612.16675-1-mszeredi@redhat.com> References: <20180529144612.16675-1-mszeredi@redhat.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vivek Goyal ovl_copy_up() by default will only do metadata only copy up (if enabled). That means when ovl_real_ioctl() calls ovl_real_file(), it will still get the lower file (as ovl_real_file() opens data file and not metacopy). And that means "chattr +i" will end up modifying lower inode. There seem to be two ways to solve this. A. Open metacopy file in ovl_real_ioctl() and do operations on that B. Force full copy up when FS_IOC_SETFLAGS is called. I am resorting to option B for now as it feels little safer option. If there are performance issues due to this, we can revisit it. Signed-off-by: Vivek Goyal Reviewed-by: Amir Goldstein Signed-off-by: Miklos Szeredi --- fs/overlayfs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c index 953295774471..31f32fc1004b 100644 --- a/fs/overlayfs/file.c +++ b/fs/overlayfs/file.c @@ -389,7 +389,7 @@ static long ovl_ioctl(struct file *file, unsigned int cmd, unsigned long arg) if (ret) return ret; - ret = ovl_copy_up(file_dentry(file)); + ret = ovl_copy_up_with_data(file_dentry(file)); if (!ret) { ret = ovl_real_ioctl(file, cmd, arg); -- 2.14.3