From patchwork Fri Sep 8 00:12:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Halcrow X-Patchwork-Id: 811269 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ext4-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="QZ5fy9eq"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xpHp21lq6z9s81 for ; Fri, 8 Sep 2017 10:12:42 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753242AbdIHAMk (ORCPT ); Thu, 7 Sep 2017 20:12:40 -0400 Received: from mail-pg0-f54.google.com ([74.125.83.54]:38223 "EHLO mail-pg0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752549AbdIHAMh (ORCPT ); Thu, 7 Sep 2017 20:12:37 -0400 Received: by mail-pg0-f54.google.com with SMTP id v66so2087025pgb.5 for ; Thu, 07 Sep 2017 17:12:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qDjywoq7Vkn7rFJB7qZ7l3QEG4VNF8mMs4cBtXwCfq0=; b=QZ5fy9eq6+/nFtZjgrqpDue+frA+q8wasI1uuQtSVhKDkm3q+h7Se8c/L+IVVAfvQl JZWUEmeCL+VR8QvOx35cYG1cyhB1ZEs80FSrgi7hkcvf/vgmMQUb4bxTkeUJ9Tsyqe7E LJhyTGujzQ7KWNar5SNKdXU2qmTwNbtNmeTkj+Mk3S4Gks5SOOnvafxpLVXJoRUH+FyS Bs1ZFhq9WHgbD+rpFUZXgoggg+hsnbza5j/BQ2wo5Y3lIrcNsntkuSkQiwUr4l7BxM/D 3JpV3CVMfGloOGxTrSf5WAOn5xWTVDQ0L53PRx7WwBFre8cnPFyLoh+56kSt9lw7swUJ FnlQ== 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=qDjywoq7Vkn7rFJB7qZ7l3QEG4VNF8mMs4cBtXwCfq0=; b=A83uXq8TNICIYt+YzAtO0LZ9+e5LswS+kNncegbUgxyVYDxYWI/Jvg+fdIWYxJyJd4 s3aGU0weJcFBBYonHTETE49q4eV4QgC0bcB48JJ+TecZgbqUKnJ7wjVVWJ0PCZ4dyRHA NitjelHwPKu0SYwqK6yNpEwp2sU6nggU14pG7pcqSTqa7DeNOHVDLBtaEomtMRsQWkOi /FmbrLeilADAor0TY0F/NQ0fwOd/OEQh6C4IQOTgbyCrHRS/fJut4NJhhYSAQDMlSvGv Z7GsxRDGBomiBvQi8MFtTurDWwzbWi60ZIswykK4kxNp3Se5bqYY7CIKPYuvWG5Jm9cj OTiw== X-Gm-Message-State: AHPjjUgs+CP0HtlVyqKj/JmbZCmGh3qd7izpXhykCBSgY+5hkuy+D9r+ sYnU68oHFnTRpl1K2mZqOw== X-Google-Smtp-Source: ADKCNb4QfNMNxfw8TbCVeDqp1WNCcaEoHB4z7idGyPhInLTE1pHpNfqRl1X7WnoHEnb506ZiXvxB/A== X-Received: by 10.98.248.71 with SMTP id c7mr1158757pfm.129.1504829557244; Thu, 07 Sep 2017 17:12:37 -0700 (PDT) Received: from mhalcrow-linux.kir.corp.google.com ([100.66.175.61]) by smtp.gmail.com with ESMTPSA id d25sm1007805pfb.1.2017.09.07.17.12.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 07 Sep 2017 17:12:36 -0700 (PDT) From: Michael Halcrow To: linux-fscrypt@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, tytso@mit.edu, linux-f2fs-devel@lists.sourceforge.net, linux-mtd@lists.infradead.org Subject: [PATCH 3/3] UBIFS crypto: Return -EXDEV for link, rename, and cross-rename between incompat contexts Date: Thu, 7 Sep 2017 17:12:04 -0700 Message-Id: <20170908001204.18174-4-mhalcrow@google.com> X-Mailer: git-send-email 2.14.1.581.gf28d330327-goog In-Reply-To: <20170908001204.18174-1-mhalcrow@google.com> References: <20170908001204.18174-1-mhalcrow@google.com> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Gives user space the opportunity to fall back to copy-and-delete. Signed-off-by: Michael Halcrow --- fs/ubifs/dir.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c index 417fe0b29f23..6c5753a2f79f 100644 --- a/fs/ubifs/dir.c +++ b/fs/ubifs/dir.c @@ -745,7 +745,7 @@ static int ubifs_link(struct dentry *old_dentry, struct inode *dir, if (ubifs_crypt_is_encrypted(dir) && !fscrypt_has_permitted_context(dir, inode)) - return -EPERM; + return -EXDEV; err = fscrypt_setup_filename(dir, &dentry->d_name, 0, &nm); if (err) @@ -1356,7 +1356,7 @@ static int do_rename(struct inode *old_dir, struct dentry *old_dentry, if (old_dir != new_dir) { if (ubifs_crypt_is_encrypted(new_dir) && !fscrypt_has_permitted_context(new_dir, old_inode)) - return -EPERM; + return -EXDEV; } if (unlink && is_dir) { @@ -1578,7 +1578,7 @@ static int ubifs_xrename(struct inode *old_dir, struct dentry *old_dentry, (old_dir != new_dir) && (!fscrypt_has_permitted_context(new_dir, fst_inode) || !fscrypt_has_permitted_context(old_dir, snd_inode))) - return -EPERM; + return -EXDEV; err = fscrypt_setup_filename(old_dir, &old_dentry->d_name, 0, &fst_nm); if (err)