From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 434F4D32D97 for ; Tue, 12 Nov 2024 19:54:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CB29F6B00C7; Tue, 12 Nov 2024 14:54:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C62A56B00C9; Tue, 12 Nov 2024 14:54:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B04286B00D4; Tue, 12 Nov 2024 14:54:54 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8FF5B6B00C7 for ; Tue, 12 Nov 2024 14:54:54 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 546BD1C52DD for ; Tue, 12 Nov 2024 19:54:39 +0000 (UTC) X-FDA: 82778492538.17.D40960C Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf10.hostedemail.com (Postfix) with ESMTP id 72A44C0013 for ; Tue, 12 Nov 2024 19:54:18 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=dRHrsmN9; spf=pass (imf10.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.42 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731441222; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5b0rySYUL4FjfsS4jGUX3HJrYE8uK75+UecupTqejZA=; b=DthuDNWnJOyxNoovO3yY2UEqxDHChFnT4kGFi4g7GYg18+Uz58eS4hKzfPi+ybYiFod5XE nrFjRwTiAq1lK9B0HlhjBwc1lMASTGP1om4JIRrVX5Ir0RAp/sllXhsUFS0gXRHS0grv8L UE7w2wPixpKTtocej1GCSVWks7j0Kmg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731441222; a=rsa-sha256; cv=none; b=7BiK8lzE2gacCXhQj+umDYQ3/gaEP6KKTm5O3syEz5nCHK1hCsVCpcDGSNnsjbZhWxHqTP pcAuXrbF9ZK08EF9Urq4Xj3Xrf8YNtHR0OO6ADT4/DtoOOKp6RS+gCjyZCB8tCaIxLLaPS b/VoMIc5u9P6Grk+9HX1WQYAA7LN6JY= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=dRHrsmN9; spf=pass (imf10.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.42 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-a99f3a5a44cso811292466b.3 for ; Tue, 12 Nov 2024 11:54:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1731441275; x=1732046075; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5b0rySYUL4FjfsS4jGUX3HJrYE8uK75+UecupTqejZA=; b=dRHrsmN9rnJyf3MO7QdMqh6F+OCTxb2GcRaVCfClKNxzFWV9/8UBNbcfKhpuI7wkYx 5rplw56trHuh/TGxIjBZlDTmwaRNnUAggdV+ahiZp44KpsFwSsWmZAVH8QVqlehcH04D 9I3rS8Pbk2w8ud7w0uk9/uEjtitbkIDb+eygQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731441275; x=1732046075; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5b0rySYUL4FjfsS4jGUX3HJrYE8uK75+UecupTqejZA=; b=ANEdfq/yYAz9nTFwn8zk4wsj5vMJ+uzeQrHOBg6LazSyCt9bw3Pacl9hPJpnzQsseV l+z9PkicftOu7kdzPLUmy6eFT+2AxS9KPcO8Zg1443oj01wBk0P/AlgdFCc7LAfnA+yU /J5MBJ3h9612S13vGNiVvZ0hJ0NwxhGf3OG5XVMzFbhlJAJ3HAwCn02jyDyzG5X8qjyO nr+IqbCoV9jmU3HHzcCCPyRZjI6fLoplDTUcyr2yOnq/VU4Ys4cuR9kbOdPVQZnMtpd9 A58eeszldiywlsma6nrqRL0U5QMCP6Pdv58H4Bo+9qetLkphlzuQ044Is3HdMXoawSxZ LoeA== X-Forwarded-Encrypted: i=1; AJvYcCUo+jNXrZHDK/HTDzHWkBMLRTCLhhi+wR5AtEFd9gBHZf2sxEkYuU/0qi4e2ux9FLcdbkbd0ZwFuA==@kvack.org X-Gm-Message-State: AOJu0YznRGgSAlyJC0uGm53HxiG2Y6WwpC9S4OMwTvSTWruILyi++KC6 3W1S0I3MxVBBVeMAoTRTuYMfaJvESWbfif4H/RvZrctjam9FHsYEGnXeBOGZNdhwTxIJat2GeOY mG/BWhw== X-Google-Smtp-Source: AGHT+IEsbXPmhXLrhkcNWVJCXrCXn4VVmfgnc7Uaxw1saxYElhgogttFr4Vd1NOY/GR4zNhFIotgmQ== X-Received: by 2002:a17:907:2d8d:b0:a99:e4a2:1cda with SMTP id a640c23a62f3a-a9ef0009b63mr1600987066b.56.1731441275316; Tue, 12 Nov 2024 11:54:35 -0800 (PST) Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com. [209.85.208.51]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a9ee0a48b1fsm757990966b.58.2024.11.12.11.54.33 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 12 Nov 2024 11:54:34 -0800 (PST) Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-5c9634c9160so7400004a12.2 for ; Tue, 12 Nov 2024 11:54:33 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUhHdzLEi06uT0CqHchoDlktbNdj/S/o3tK3GnHBvMxfGCsCJsQOdFFiQJzJliNMgS7BmNlpWJsmQ==@kvack.org X-Received: by 2002:a17:907:1b21:b0:a99:ff70:3abd with SMTP id a640c23a62f3a-a9eeff25d17mr1761977066b.31.1731441272860; Tue, 12 Nov 2024 11:54:32 -0800 (PST) MIME-Version: 1.0 References: <60a2309da948dc81e4c66b9e5fe3f1e2faa2010e.1731433903.git.josef@toxicpanda.com> In-Reply-To: <60a2309da948dc81e4c66b9e5fe3f1e2faa2010e.1731433903.git.josef@toxicpanda.com> From: Linus Torvalds Date: Tue, 12 Nov 2024 11:54:16 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v7 07/18] fsnotify: generate pre-content permission event on open To: Josef Bacik Cc: kernel-team@fb.com, linux-fsdevel@vger.kernel.org, jack@suse.cz, amir73il@gmail.com, brauner@kernel.org, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org, linux-ext4@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: 9qd9yufy376ea4pnmyms9c4jy9my71ip X-Rspam-User: X-Rspamd-Queue-Id: 72A44C0013 X-Rspamd-Server: rspam02 X-HE-Tag: 1731441258-415644 X-HE-Meta: U2FsdGVkX1+tvjfzP3o6/BWkMQFs2QB73R0QlAAY5nIZ7JmDU+WafssiWBudJFXV3FNSnqjzWQUChfd9Ng6cUkTBaJYTJUV4FI1kO/umi0Jaa4oiVzYT+T1W4hvTKnCQUBlvxoREafs/AH5PepvayeOInvUBJW1EoTN45nAlgFTb33EQ8zAs3i4xQddN7ozc4L9v+etULaPV2grg4zPkAI444ibbPuLVQZ1e4yE+gLALqQ1CKs8hnabGNrTiqNXmlj/Lsuib5jmuEu6pMrGMvWLrgSdBYU9By+T2ITASDj+igPS6+YqlOSp6fInbSCFVu7dq4kfs2va/0B6HWXg03KIIsFPN10F1bjwn7tzVWRK2hk0mOJNJfO6N0/wog/ewV8lSDNODJlebc9ak/RbBrpsXmsRH5OABV4CewEicEA+yz4+ZD16L4kiyxkVwqc9TtdIBBwDhUsjN/hHBRM1PO2oUYWUX/JjEJ3QlxobqDcoZtom7hQFOmUsUkyBVm/7CU3xN7w47+KzBbhfptExeOETuYkfUsb8HxA3IgRVoy76USiVuD/z4h+ZAfI9GeLKJUJCwyTbMNH+Ohnl5A8QFRT+CBTbBKRzLKvSUSdvA49bEjxu0sg74SYKYHfBz6yxDcr2tBMl8f4sYgrqqqCF/RS/A3vbiPr93hdmz11YDsbXaAgrjyCwrhDPnMkoxnAAGN1vHl8kGB3iRwQiDXhJ+SGDlOrsNYMJcITzPV4ozHYAYJ8OfE7WevCKJJ/ladMtkph0P/NLsAsPUcbwQ9sH6T2pB91onY5Gdqw1H/Sg+KVH1oiYTVRJX83lH82L7zO32DmS/PMPCgLoPQjOURs0dnbb9RY0S+3jRzmdy+ZSHO/s6k2CXhUtCAMqGo/XMzr8xcavw0cHUglsZgZPvlIcX2ugs0zvqA5qBL7vQTwHKnbzOgUhgAATHvYVepL+w0Mq4YKxyaraB+xEGDUky/o0 twRZS+Ej Mz8pMyYmIlcudfjNnynFmAN8XVBgfs1jQGCYWSMWZaaTOQK1J6knUsIzTIfvuq2HFNC8a8HDfKNEArIGo5vDJChOEkQqcipTdolRYeW4wIv0HgtQhFvpVYjzgLqSvE0w7lN1Saj8FpG0mln4YfuHIlV2c2CxBNzlMlZwvJXxjDQh4ToRegVMU5uz8KaVv1vsViV4IancqBP23ji65c8BCOHYmKEzwyd0GgXsARQ0IjFuC6j90qVRTUmqw7vBlRwtB4G7XdzmbT+SO8vPseTCH+ixG6t4r6f2qVRpQ3kwZ7YEpiNsi6RozZrZhen9QaU/v/ibylWtjEPlbT26J2FgxH/LOOzTSeZMktJlipRiEqM/+bTDjuPaoAH6fUg2bwMv1z7viblcnBriC3c9Jdn5wSGMT/U4K66llvn2sazIJKuTUeievJOQqYDGgUEh+o7HMEcQI7MBgQk7TBZS+Ns0C9WMoOliSelk7Iu/lVMh0zVSgH2hWXofujA9TCiDGyN+I9V2U7dBQQfSvBqEb0Lj56emEZu6vXDQEowlk/ehMP/44L+0C6Xlu0auGTyXqulrMJeYp X-Bogosity: Ham, tests=bogofilter, spamicity=0.033195, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, 12 Nov 2024 at 09:56, Josef Bacik wrote: > > + /* > + * This permission hook is different than fsnotify_open_perm() hook. > + * This is a pre-content hook that is called without sb_writers held > + * and after the file was truncated. > + */ > + return fsnotify_file_area_perm(file, MAY_OPEN, &file->f_pos, 0); > } I still object to this all. You can't say "permission denied" after you've already truncated the file. It's not a sane model. I complained about that earlier, it seems that complaint was missed in the other complaints. Also, this whole "This permission hook is different than fsnotify_open_perm() hook" statement is purely because fsnotify_open_perm() itself was broken and called from the wrong place as mentioned in the other email. Fix *THAT* first, then unify the two places that should *not* be different into one single "this is the fsnotify_open" code. And that place explicitly sets that FMODE_NOTIFY_PERM bit, and makes sure that it does *not* set it for FMODE_NONOTIFY or FMODE_PATH cases. And then please work on making sure that that isn't called unless actually required. The actual real "pre-content permission events" should then ONLY test the FMODE_NOTIFY_PERM bit. Nothing else. None of this "re-use the existing fsnotify_file() logic" stuff. Noe extra tests, no extra logic. Don't make me jump through filve layers of inline functions that all test different 'mask' bits, just to verify that the open / read / write paths don't do something stupid. IOW, make it straightforward and obvious what you are doing, and make it very clear that you're not pointlessly testing things like FMODE_NONOTIFY when the *ONLY* thing that should be tested is whether FMODE_NOTIFY_PERM is set. Please. Linus