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 C3EAAD78764 for ; Thu, 21 Nov 2024 14:18:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 631686B008A; Thu, 21 Nov 2024 09:18:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5E1056B008C; Thu, 21 Nov 2024 09:18:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4A9516B0092; Thu, 21 Nov 2024 09:18:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 299266B008A for ; Thu, 21 Nov 2024 09:18:52 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B1F011C74F7 for ; Thu, 21 Nov 2024 14:18:51 +0000 (UTC) X-FDA: 82810305774.13.2DDFB8A Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) by imf04.hostedemail.com (Postfix) with ESMTP id 0CFFA4001F for ; Thu, 21 Nov 2024 14:17:42 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=KCijFRaL; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of amir73il@gmail.com designates 209.85.208.180 as permitted sender) smtp.mailfrom=amir73il@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732198543; a=rsa-sha256; cv=none; b=6aSBAWnFTdN5btMGMIHQZGk4CGlxMXBC/oeWqFpQbdC9jaXGP8po7mtt8NQt1RqeuqZgZC 91fVwczxFCl6rp24I8w29PjKBs5QtO0ekTKABg+PSBAVVDQvxGjQWjinr8bz++f5jTkFk/ YVzumTPQOZ/9WCw52AML8X0ACASFY6E= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=KCijFRaL; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of amir73il@gmail.com designates 209.85.208.180 as permitted sender) smtp.mailfrom=amir73il@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732198543; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=pO8DokmCbNTYcYBfKWRaeP/dEwanubQ3Z/RPc3+IoOQ=; b=UUmqhjycf99gmA4jvs77TpDSfWyLjWo9q4VJnAATSKEqnCevAmhREJd+TClBkvAdrcnE1v hn9tmjnf8oUXdD3rFylN9P2glrTnSBoxlmm6LedpsLkKPQLX+ujZGS6KZe13JoQl5OsIAb evxhWG4iWY/4iZkDzNoyFRlMP7I+L7E= Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2feeb1e8edfso16754221fa.1 for ; Thu, 21 Nov 2024 06:18:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732198728; x=1732803528; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=pO8DokmCbNTYcYBfKWRaeP/dEwanubQ3Z/RPc3+IoOQ=; b=KCijFRaLCfnqtVya82A9YzYywixaDayN7hzPHK+zGqhqadEbWRHbzRSnY91EeDz6hz Xz6Lj52vhf8uqQohzEpZhUqHVYPNjoNxu+hJYrA5jVBZ1EflRB8ih1Hb/9EAI/i7fVIY fWtPw/OQj35tMD/2QThGwm7RjmQEn3OodvhY/aj6GlbY/1EvFhttRmWn0LUGR58JWFBY xdbT+ER26ENOctbaKkpwpqWyi3J0D5xLICmG0lBHyYRfaiuocsyxTqgvemPjPd0zUrh+ GDB53ZTxlqqPE3XLkODVJRihd0I8MYvzaDwVfly+1qyFr6rNcZGyDK/HGAjIb5j+cM4Q kQPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732198728; x=1732803528; h=content-transfer-encoding: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=pO8DokmCbNTYcYBfKWRaeP/dEwanubQ3Z/RPc3+IoOQ=; b=s4G6Rdor05T+mlamDCjrpkMMUDLRHqN+oElqRhjEazKxYd5QGa16EHhfp+sVc2CZ/t nGP+aQru2tE+zSj8JQ6ZGCEm6FsevOYwlhMk3kmbngGp9AdBBcp+87bzvGKh1KpWngG/ DubkVxoJ1VL/c8YbNHfL9KZySMaLxKbZKibMWhUe2bkn4O5/2v9BG+9Pjmnd75d0tsJY 0h+89kEoiDzPiFY3sw/9+7gr5Wo3Q2StXme90+t9h64CriGsejT0i9ho+xl09UTz90AC EhMGVoeqxLCVIFrghNqy/+v2TJX93HYvqVdhC5YOkugcyWgtEhu+xRNUukputbci7kBz VGKA== X-Forwarded-Encrypted: i=1; AJvYcCXxXHYsBMb45YQKbKmQoOXhb/0Tl9Zavyhqw/gjHHr8JpOlfSHBJk/kvJ8c+iQwVu1ftztFbOZ3mg==@kvack.org X-Gm-Message-State: AOJu0YwoPsYoY0FEBlnXGjnaW7d4EFcsiEWHH//MNKFZOQNM6BU8ywMj 9m8QAMDrTsS342C64jltB9s6JjDgn2VWEAFCiI31f7d1nc8le8t79pPVgXq0bamtdXvksddgo6m ItXF9ZzIeRFAJblHIU9ASNRuFJd8= X-Gm-Gg: ASbGncsnxfRWv1URqYS0hglYOwFNpwwjVVFo4ey9WTg/gNI83mBOulPEhQi5lMsMpmj 6icoCYjH7rVVOWSZvPj05xUhakJGLTVY= X-Google-Smtp-Source: AGHT+IEE9uu1LLPFKTWP8pimZf7yZgaRdrUeWk2IUF2LLnQpNe7uZnVbznEcE/8soKYRUUWZb2SAtbqxpd+Sov4cXAQ= X-Received: by 2002:a05:651c:221b:b0:2fb:6362:284e with SMTP id 38308e7fff4ca-2ff8db165bdmr58987841fa.8.1732198727467; Thu, 21 Nov 2024 06:18:47 -0800 (PST) MIME-Version: 1.0 References: <20241121104428.wtlrfhadcvipkjia@quack3> In-Reply-To: <20241121104428.wtlrfhadcvipkjia@quack3> From: Amir Goldstein Date: Thu, 21 Nov 2024 15:18:36 +0100 Message-ID: Subject: Re: [PATCH v8 10/19] fanotify: introduce FAN_PRE_ACCESS permission event To: Jan Kara Cc: Josef Bacik , kernel-team@fb.com, linux-fsdevel@vger.kernel.org, brauner@kernel.org, torvalds@linux-foundation.org, viro@zeniv.linux.org.uk, 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" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: nu9dzzxq54qttez15g445ik4htcn19zu X-Rspamd-Queue-Id: 0CFFA4001F X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1732198662-733671 X-HE-Meta: U2FsdGVkX1+avDQeyu5RT983N+dfDblOf6bzVHQh2pRsvaaSEu8DH/sUkh6kDY69aCJOBsljv9tv8IyjLLrdRHXwMYbKM16HMCBcQhpfgaj7QbAdtLsr1+sKYtd/zdIoipJxNVcwl2RcEircg0KOskNVy1jpsArOtSY5jiM2VivfHQ3+rN2QkBesY2amMcVSCbFKaS+ePrEczv+qTWEwGcm6vr784Z9n1E9EyFCdtgwouUiYu2GHHolLuOQbECR/OW91w+9TuC4TfJ2Qb9Drv3s7e5KgQGKv1SnnpF74/auUMJEOBtx5qpRSzjYLft0+QQpdvkJ8cG8jdPiNh1HS23TcBNZ9/kXpdsxdXu5HQDXCE59LbeptgWDXJJduVRc4auzgc8B5RIjSUKSQXtmrfM5ieyzNzcujbCdOPmpnhbyQKwht0C36wiq1RO7EX0bW1GCM+7kxYF4qgwV/OUPr4cOgZjUzNeISR8o3u+ob3dvzq+t8aqOP07RmHU5mp+zt10WtTi2ZpAb9dSxoiZ5i5uc76CNYyQRXNnViXVzC22nTTsjDN3dU8oDpErbjSv/arMYTbWpRVxgKR790eqQ8Xciq1h+UcyBVylsvt9m437wb0rWXiIi0io6xOxxoKWA2GYtQdxsTQ/Wy77FWEhxYzxRRoBHEK4qNYlCiKFxid6s9CIplbgQVbGs8zxOHEAXMx0I1VoymBFKzWFPj9544zWggEv6xde8k8dbtla4s8PJJLUH9pGMiFzML4hfUbe6Pn1gR+oujBPvofzKhMf3EzDGb1gvD7jbma2XghNVGCSNe5BLTmBHTePQZvkTAyBlHg/4r+ZD/4PFxNXXgWj5ZYtw/fAe7RMLaVuiwo95oF0n96pWKA3RauaUt5B+9pNv15H6KBfD82Jhew1tZGB0m+2ej3YTQvJbjDlQN2DbdhDdSDDFUePHFY1gkizuv2OBjKg+XlCEU+KyyDyQMxbE q2YTK6E/ 2ha2MoccyKfzFtT9ATQZycZr+BucvgdVH4/26eFv75Z3su9vhl6BY4YaIwxVmhe973XJWQ4lfAGY1vhLR/n5c23kk1PNR8+cuW2/IMB/fMP6f030D5l6mPseCU8DjuzNwmVkcdVZdnYW9Sloqekr0fbSoyIi7YDerkZpHWUUDpDWPOjOklrrY8s0OwR9GYNWAbBXMgat6+Jdawq+uNh7hvOc10mdLX+S81RNf9N6K/NMYsumdPPSH3cTwiDanjtQJwqHA4dVP/Ku5VFevLp6VeTzGDQsX701chCNMM6LHPHJaBWSGg5m2rwrj84rIXyhH7+N8b9DOu02oOiOEBP2lu+9v1I0OwFHuxjrsyce1z9DTlv+Wqh8/nxspoDUAdkEmV8wL X-Bogosity: Ham, tests=bogofilter, spamicity=0.000009, 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 Thu, Nov 21, 2024 at 11:44=E2=80=AFAM Jan Kara wrote: > > On Fri 15-11-24 10:30:23, Josef Bacik wrote: > > From: Amir Goldstein > > > > Similar to FAN_ACCESS_PERM permission event, but it is only allowed wit= h > > class FAN_CLASS_PRE_CONTENT and only allowed on regular files and dirs. > > > > Unlike FAN_ACCESS_PERM, it is safe to write to the file being accessed > > in the context of the event handler. > > > > This pre-content event is meant to be used by hierarchical storage > > managers that want to fill the content of files on first read access. > > > > Signed-off-by: Amir Goldstein > > Here I was wondering about one thing: > > > + /* > > + * Filesystems need to opt-into pre-content evnets (a.k.a HSM) > > + * and they are only supported on regular files and directories. > > + */ > > + if (mask & FANOTIFY_PRE_CONTENT_EVENTS) { > > + if (!(path->mnt->mnt_sb->s_iflags & SB_I_ALLOW_HSM)) > > + return -EINVAL; > > + if (!is_dir && !d_is_reg(path->dentry)) > > + return -EINVAL; > > + } > > AFAICS, currently no pre-content events are generated for directories. So > perhaps we should refuse directories here as well for now? I'd like to readdir() does emit PRE_ACCESS (without a range) and also always emitted ACCESS_PERM. my POC is using that PRE_ACCESS to populate directories on-demand, although the functionality is incomplete without the "populate on lookup" event. > avoid the mistake of original fanotify which had some events available on > directories but they did nothing and then you have to ponder hard whether > you're going to break userspace if you actually start emitting them... But in any case, the FAN_ONDIR built-in filter is applicable to PRE_ACCESS. Thanks, Amir.