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 8B8B9D597C1 for ; Wed, 13 Nov 2024 01:20:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F36EB6B0098; Tue, 12 Nov 2024 20:20:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EC0746B009B; Tue, 12 Nov 2024 20:20:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D12B56B009D; Tue, 12 Nov 2024 20:20:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A64826B0098 for ; Tue, 12 Nov 2024 20:20:01 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 5CAB91A05D6 for ; Wed, 13 Nov 2024 01:20:01 +0000 (UTC) X-FDA: 82779314940.02.DAD701B Received: from zeniv.linux.org.uk (zeniv.linux.org.uk [62.89.141.173]) by imf13.hostedemail.com (Postfix) with ESMTP id EA7F320006 for ; Wed, 13 Nov 2024 01:19:15 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=linux.org.uk header.s=zeniv-20220401 header.b=NWnQS4xv; dmarc=pass (policy=none) header.from=zeniv.linux.org.uk; spf=none (imf13.hostedemail.com: domain of viro@ftp.linux.org.uk has no SPF policy when checking 62.89.141.173) smtp.mailfrom=viro@ftp.linux.org.uk ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731460670; a=rsa-sha256; cv=none; b=ppJN/TLq8ntW3QfVQ4VoJ7ZvpqwBBEkFDP/+opEmNcImwd50ZmS6nol/piP0ejZR68z+BT hl9w63q2icH+JTPdL9K0bJpab8whgwyOUdYG2Il30S+wTmrXlVGbb0Hg4lTNirjYmqRYs8 zJNdxU6bxKzRlLqEWxQ8Zf65unHK74g= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=linux.org.uk header.s=zeniv-20220401 header.b=NWnQS4xv; dmarc=pass (policy=none) header.from=zeniv.linux.org.uk; spf=none (imf13.hostedemail.com: domain of viro@ftp.linux.org.uk has no SPF policy when checking 62.89.141.173) smtp.mailfrom=viro@ftp.linux.org.uk ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731460670; h=from:from:sender: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=+xBD1LG1LcD2WvJWHLClpL4CkoduBy/hMixH+3L2C0k=; b=DvLG3vnECx+uwU50s9ROGSWSEqRqG6yN6sXbsM9KCjlrcF1vReV3nGWRe7UR7Jlgdmlha0 WBFlWKC7hccLiyBn/UaBr848uJsduKwOkImjPDEGcd8FUaiXPC8sXhbrQmxHp6hRMUnty8 G5jXTi4soeJBLYUVkWrwB2DbxG/LL7w= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=linux.org.uk; s=zeniv-20220401; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=+xBD1LG1LcD2WvJWHLClpL4CkoduBy/hMixH+3L2C0k=; b=NWnQS4xver1owBO+dn2OG3m35m YqYGw2WubUWRGvoj6Nj/I0yVjQQcIshCS5hh7T6H6svbkoLqNtVuFjUB6lmVEGiItwgK6KwVHP24w 249wjP8HAnySe2tiW15dmU9Uco4QR5sjxt/u9ffiwypdBNYN1uhFwXXejD2H6698UzgMHy4AafB12 noJhUGXPkJjMlejOr9GPIsgaRcCFPvZ6px03xHvhivHqv+Ei3lp9e0ZtFCY1u5aerpBN+jrgq1G5E gOe27ozCV21rRcIkZI5ePTtJ5sgUfkPdiou88Fr9qkqoyxHzsVsJUjrR0Bq2zx/K0t+ut4sXOvs9h ibbU2D6g==; Received: from viro by zeniv.linux.org.uk with local (Exim 4.98 #2 (Red Hat Linux)) id 1tB230-0000000EJRo-3OnO; Wed, 13 Nov 2024 01:19:54 +0000 Date: Wed, 13 Nov 2024 01:19:54 +0000 From: Al Viro To: Linus Torvalds Cc: Amir Goldstein , Josef Bacik , kernel-team@fb.com, linux-fsdevel@vger.kernel.org, jack@suse.cz, brauner@kernel.org, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org, linux-ext4@vger.kernel.org Subject: Re: [PATCH v7 05/18] fsnotify: introduce pre-content permission events Message-ID: <20241113011954.GG3387508@ZenIV> References: <141e2cc2dfac8b2f49c1c8d219dd7c20925b2cef.1731433903.git.josef@toxicpanda.com> <20241113001251.GF3387508@ZenIV> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: EA7F320006 X-Stat-Signature: 7iynu79cb9dy4yxfegc4qb3eyp74eybs X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1731460755-380651 X-HE-Meta: U2FsdGVkX1+DSsdlRX8wJIM9NgC4mGT4u1wxCt5OXiRoQi8+DZYcfCa0XcBTr1qpgVzrMUK0Azd83VaWn6xJ71eO3ExSiQFDXme9o9OCjT1i//OLX0dZkkuga2Nb5c+JMpUFs3YWxllU/02i/d/YoqFsKgoLo4mjurTH23Zu+YpJFUtTPMxdHZtvqhIpAEuz/kNcsO0t/prO8/h1Iy3U+DiVr3sdgNspdfcOgPkzvlAGNo8/v0priznhsJTxmPSotfn1uZQ45kiWnJiG6cJxQ/+/387hWpz4jTkU79Qb1ZPKuSNCkIO4zVC1Oh44o0vsU7iibbp1gzScSHXxT+c3EIcdkI4QmnYJA3hZRYUXydTAPsPw/8waYL8t55gjMxKTNC0Squd07lhD3Z4N66gMp9XgKmqFn/2QkqEY66fdO2eJfq9k9Rzl+NAaYrcD7+px0wP8n3WGsaTQpuK4NEi0ysNm4q2XXMzVxy3c7l2x/JczE2fYvXjJsmC3/1lo2M01efAzMldSGzuR0F2Av/3vfLxMukS/1pK6wQP7AknzGD0Ii/LhXc9mcBqzdBt3emlfxWZCrFpBR8bYv5+PqODNVR13tZxNxz+ZETVa6ud3FdvbXTpRajaCx/HR7boYhrehNGuqNd3cJZqzMM+f/TTxLvXceFUnLg/tLx7mfZG9CpkPiwv+/10BkIpXWSCWRgr7eGZTHX05p4TwLt54LHLRWrCNUkxYlrO9tdaD3u9LPilv9TUH9svESfNeSQh01DQ8Lxl9NpUiY5zBQ6i7zGisKtRw8LrmFPEbmKr+5ygBP1BkL+D4cBi6m0ucsmH8bXOVYTdhXroG6sfYNV/ZFsfYCBSVctgDtCrusSKJG99k3NbBIpPSs7AiwQnFGqIwTWqu6eatsCqTVV1z2mL0ijRtW9mWKJE7Hvu4cAir4mLHJRsjX9VCO9l5QB+8s4r+fqkFYLuxiWMGx+uNQjczqEI 9G8VZGE4 iqO4BAQM6lKfScMQl9t/0o1ZKRnqFSxwUmw+EKUVdT6uFDIkBvRLPQr71dI7onZOcTIUnbYVz1z+Kua1j9bR/KVV+5v+NQjsC7N5UThBc/n9P9YTunh3ZKh1oNjXUAS2qb6VxjpqnOcGLM8E20VBZXPDz5dPG/4XM2GoAaSJvHkpS/e8lGm26Ss0/rIgxkoa1PVyISVtLqJIdXf/w3LycZUokhKy8cI3Ly8S+FnG00QKJUMFLqtSWS13gft/Cp5ee8fw+OgDJ+6lJbIo+Ai37Oo2ghVkDGZ3WMHNfdAFArrH7zlg7PowVJNb0IioCddFHTP4MnK/vWonV7uwBmH3CsUD7GhBor3a93y/68c6KFuIvS4KjyPS6UrZQSasVxovPCoSXmYxInlu4bEAn3Kc1VcAjfhQfYBx8DK6hNTF5H2XH/Amsq9FWklJZApi5EitEN6Gv X-Bogosity: Ham, tests=bogofilter, spamicity=0.000011, 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, Nov 12, 2024 at 04:38:42PM -0800, Linus Torvalds wrote: > Looking at that locking code in fadvise() just for the f_mode use does > make me think this would be a really good cleanup. > > I note that our fcntl code seems buggy as-is, because while it does > use f_lock for assignments (good), it clearly does *not* use them for > reading. > > So it looks like you can actually read inconsistent values. > > I get the feeling that f_flags would want WRITE_ONCE/READ_ONCE in > _addition_ to the f_lock use it has. AFAICS, fasync logics is the fishy part - the rest should be sane. > The f_mode thing with fadvise() smells like the same bug. Just because > the modifications are serialized wrt each other doesn't mean that > readers are then automatically ok. Reads are also under ->f_lock in there, AFAICS... Another thing in the vicinity is ->f_mode modifications after the calls of anon_inode_getfile() in several callers - probably ought to switch those to anon_inode_getfile_fmode(). That had been discussed back in April when the function got merged, but "convert to using it" followup series hadn't materialized...