Received: by 2002:a05:7412:5112:b0:fa:6e18:a558 with SMTP id fm18csp130701rdb; Mon, 22 Jan 2024 14:36:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IGwbL8nSkBTMqB0+HaHWMRP2ua8PIh1SdMKtblxn7J3ZbTeJHXk6bPSRfIHM67qNKb3m61i X-Received: by 2002:a05:622a:13cf:b0:42a:43c0:4af0 with SMTP id p15-20020a05622a13cf00b0042a43c04af0mr1721980qtk.92.1705962969300; Mon, 22 Jan 2024 14:36:09 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1705962969; cv=pass; d=google.com; s=arc-20160816; b=vVKld6MojZbh/WLKTbQqJ+s0qelPQ2KYw0qLI3DfaDifMdZYs/5OoGMsTarsCofES7 EXVrWrbP0fUYWlrx5w4k44V4nyNLOw/xRorkl9uhjdV8bX5C7sIM9Ku6Ffh1T4Vb5F1c GKh6wi4Xbcl1Oh6Hr2mT2Ou5VBRSr2fWxhWpvb7+g8riPdq6enetPOVPea+dpyCeXOzb 8lVnUcJlpzmcM+6vQixV/JzWpbCgP6Yg8BI2Z6xzeenbe8vKOoYbgNZl/Ks2iVGf9L8+ Nigf8iAVoqChaBytazWvy1frDX9VzgKZEhqCctwnqO1z22bjslIsr3gA1Ptya80Lyxy2 m4Dg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=AQmuqxaeIGZelSODTss8gWd4P9SrQf4vDlsO0SnTpdE=; fh=jD/G7UrdWzQUaVcsyZL0Br5qChVzoyKXvXZLpQibT6A=; b=NnOzlkM6rW1wr4GIXWOYTMy1TO15YQ0Xc6HEst8OlpkWyvWOWPZMnTQPxbf7O16Qlj yd/QKWLn4RKrngWcld2sb57vRRHgHzol/kAKonmKQtgH5thpiivhd2edd1cxf5ugOpiY aquPN7NweLtjbJuKr8Gcepr749WzQJiDKeTIoVhNaIqCsjI2fBIiXDfes2AdKvi9abn4 Lwu5BitUHTEKowQnB52c5E3oY3mOxxe10L6/VlwsKswBMrDT3g1DCMI8p+JMoJMM5FQe 8s8XlRRRClBHEjj8GHBHHs/o+rMIwmdD+LGpJSarBnY0gjXxfCnbaVYZyiKWZwwMHpaZ 6dRg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=HFtr8aQN; arc=pass (i=1 spf=pass spfdomain=redhat.com dkim=pass dkdomain=redhat.com dmarc=pass fromdomain=redhat.com); spf=pass (google.com: domain of linux-nfs+bounces-1267-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-nfs+bounces-1267-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id o11-20020a05622a138b00b0042a032f984bsi6540302qtk.630.2024.01.22.14.36.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jan 2024 14:36:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs+bounces-1267-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=HFtr8aQN; arc=pass (i=1 spf=pass spfdomain=redhat.com dkim=pass dkdomain=redhat.com dmarc=pass fromdomain=redhat.com); spf=pass (google.com: domain of linux-nfs+bounces-1267-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-nfs+bounces-1267-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id F179F1C20E80 for ; Mon, 22 Jan 2024 22:36:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E7FF14B5CB; Mon, 22 Jan 2024 22:33:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="HFtr8aQN" X-Original-To: linux-nfs@vger.kernel.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C2264BA84 for ; Mon, 22 Jan 2024 22:33:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705962781; cv=none; b=CYpGdBEDoX6ZnawDGftnEmjcUIRmr1+K6Hc7wfEpFGxf9ZQhdMd6vU4R2XIMgAOcZKXEH7vNXDdbah6yafd2D7Cloz80tnbWS27WDVk+jUDtAFlmq+Z3XxuBh4XJiz+w+1uA0rwF6WWvS7mvQpAixzrp3ClexXwCRHV113ojmio= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705962781; c=relaxed/simple; bh=6H3U2xFlfhw33p6fngsaEo/JwWggI7/BGAeipSgCLFM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iNvoMVp3mDLhaMYrICA322LFQ3n3DvpCAcvEZ4jbJQRL70TIFWEMvfmWwA43XYmf1bsfyDXW0p25A55yhT2iWm+jQArM/0YAvaq1DzHtWJO8RkacWdRgor1gBjjBgmrdDjMZghbv5Air1lDLUqB7nV0u9rbXUpgzIE84bvCTozw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=HFtr8aQN; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1705962779; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AQmuqxaeIGZelSODTss8gWd4P9SrQf4vDlsO0SnTpdE=; b=HFtr8aQNrEW4Uv4Kckk8BJeFDYH84J8zfuAo0/XBqOfOe7zsG801VnYjA92AZj8lekOblc 3vrqRm8NAtJU+WJAHmqz5sHo94rPb4JkFgIDj8MZeyuBYow2GXsn+uHOr+OZ0WAueBfO5p NZ+MglXINlp6yvjtsjrK72uETJ7B+dA= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-446-I213UdhrNQ-UHiAkjXvHRQ-1; Mon, 22 Jan 2024 17:32:54 -0500 X-MC-Unique: I213UdhrNQ-UHiAkjXvHRQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B4F7980007C; Mon, 22 Jan 2024 22:32:53 +0000 (UTC) Received: from warthog.procyon.org.com (unknown [10.42.28.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id D97A93C2E; Mon, 22 Jan 2024 22:32:51 +0000 (UTC) From: David Howells To: Christian Brauner Cc: David Howells , Jeff Layton , Matthew Wilcox , netfs@lists.linux.dev, linux-afs@lists.infradead.org, linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org, ceph-devel@vger.kernel.org, v9fs@lists.linux.dev, linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Marc Dionne Subject: [PATCH v2 07/10] afs: Hide silly-rename files from userspace Date: Mon, 22 Jan 2024 22:32:20 +0000 Message-ID: <20240122223230.4000595-8-dhowells@redhat.com> In-Reply-To: <20240122223230.4000595-1-dhowells@redhat.com> References: <20240122223230.4000595-1-dhowells@redhat.com> Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1 There appears to be a race between silly-rename files being created/removed and various userspace tools iterating over the contents of a directory, leading to such errors as: find: './kernel/.tmp_cpio_dir/include/dt-bindings/reset/.__afs2080': No such file or directory tar: ./include/linux/greybus/.__afs3C95: File removed before we read it when building a kernel. Fix afs_readdir() so that it doesn't return .__afsXXXX silly-rename files to userspace. This doesn't stop them being looked up directly by name as we need to be able to look them up from within the kernel as part of the silly-rename algorithm. Fixes: 79ddbfa500b3 ("afs: Implement sillyrename for unlink and rename") Signed-off-by: David Howells cc: Marc Dionne cc: linux-afs@lists.infradead.org --- fs/afs/dir.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fs/afs/dir.c b/fs/afs/dir.c index 3f73d61f7c8a..eface67ccc06 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -474,6 +474,14 @@ static int afs_dir_iterate_block(struct afs_vnode *dvnode, continue; } + /* Don't expose silly rename entries to userspace. */ + if (nlen > 6 && + dire->u.name[0] == '.' && + ctx->actor != afs_lookup_filldir && + ctx->actor != afs_lookup_one_filldir && + memcmp(dire->u.name, ".__afs", 6) == 0) + continue; + /* found the next entry */ if (!dir_emit(ctx, dire->u.name, nlen, ntohl(dire->u.vnode),