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 1AD83CD4F59 for ; Thu, 5 Sep 2024 08:09:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9DFB26B0375; Thu, 5 Sep 2024 04:09:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 98F086B0376; Thu, 5 Sep 2024 04:09:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 830DE6B0377; Thu, 5 Sep 2024 04:09:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 606286B0375 for ; Thu, 5 Sep 2024 04:09:44 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1B44081A80 for ; Thu, 5 Sep 2024 08:09:44 +0000 (UTC) X-FDA: 82529960688.13.604F418 Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by imf03.hostedemail.com (Postfix) with ESMTP id 5CB5020015 for ; Thu, 5 Sep 2024 08:09:42 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=grKMwCJ7; spf=pass (imf03.hostedemail.com: domain of amir73il@gmail.com designates 209.85.219.173 as permitted sender) smtp.mailfrom=amir73il@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725523734; 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=+gKqRHMWV7haALLKImll/o4tA/O/QxYb1m9nYiFRngA=; b=IL6jrSN8OEz07sTjf0KEbySmGQyL6BwsVGFhvtPSXPz5v2kj9LY1a7GgSUsdaCFEzu8Czz eFPQn230yKJTzW6zskh7rzqNqX2IzwsO5482hmXaSf76eEY3iAd76efUmEids+7wCg3uqN vreptHVXm9CMbgF3fYdsAF0nQsGUF1Y= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=grKMwCJ7; spf=pass (imf03.hostedemail.com: domain of amir73il@gmail.com designates 209.85.219.173 as permitted sender) smtp.mailfrom=amir73il@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725523734; a=rsa-sha256; cv=none; b=c5oJkb+fXl2OsAO3TlWSrF6gdsCIFMpdCuscZ754HbhvijwWrB/YaOKStI4aKaaHMoJKtQ nF5U9kLKeFiQPk9MCFQ/elQU9ZgmrWbDmrwPkd72+6NTp5fF/qLFoHDp9kTr/a2553pwMQ /6+5gqmrSmB3aACG+g1E2mfrytsZg4k= Received: by mail-yb1-f173.google.com with SMTP id 3f1490d57ef6-e1d22ecf2a6so598539276.1 for ; Thu, 05 Sep 2024 01:09:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725523781; x=1726128581; 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=+gKqRHMWV7haALLKImll/o4tA/O/QxYb1m9nYiFRngA=; b=grKMwCJ76eCBzvyEDnX9x8IMBSmFp/WftoLW7BLJ1OlpqAu2yUdO8yt2g3A92LJMn7 +TV6ZTjinvxtQ6AbTDyjQou6+2gDuAgBStZKFhqhxWb7h7qR5rgOPIstmiBVGX7LMHlv ZBiSRbvSFOWdt85ZtORanhvnooSEblYsKcKFdqVQKQA8JDO0Sj3Sm9B1Ak/eBHh7cNyC P6LyIuoS9mPvLFqfr1n2hfsN+dxb/GYrJaC7gh7Jfbf46cmX72vlu90OkLT/7CbPWwGu wncvTMLYA4mGIvwphHrEhxtdFUfJWvrjQpcIAonUXNJr24BdGNCgcuwBwjQXyckiedf8 Whrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725523781; x=1726128581; 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=+gKqRHMWV7haALLKImll/o4tA/O/QxYb1m9nYiFRngA=; b=fjWVWYv5OCdQRjiHuv9Xn1GPvoEApBqHesT7vDbHoRDPLzOtYgHvrC+/w1Y+xBpQax t6+2IqtybCabdTcI8hdFWKp9+1fgoW/gn+DvPwmkddTLwPGhzIT3R3j+jqUY0ccpFHK8 dB/HRYFQ5eESS6b9Qp0fQft5FqEDfuiFuiLibU3vg8CBKQrc7S5FHd9UV0NqR5whrro+ jHWAFBb5W3gc0Ivm6CGw4qY/P14hBk/sj9YW7Tb+SnaR6+rQ416TGqkwePiFFRnDQqrj 2xpdvB+54LKAtftCA9DjfV0dEoa/rawNrGp7ttRjFcTWiOs6vgo+oU3doXdhwZ4q2xtd SBDg== X-Forwarded-Encrypted: i=1; AJvYcCU32vxxDAFnHUmG52tTMOwQnQifCcAUdl/Tp/6uuXrWLlj65tTCm+WyvOyKCqa1IVkgG7Anzzay8A==@kvack.org X-Gm-Message-State: AOJu0YysbJkHhCEQJnzOq041TtiQLhHcGQ6OVPsJpqFKzkfXjBpWXnZq fOQ+PG9sVVklhriBiE6eEE5cjnlYwFpuVZbeER5ZCWNbDgL1JaCKeaA/YCYT+YBTHlbxzGPoSSK zxILH4+ZHxeynH0HupbzyR0zPx6s= X-Google-Smtp-Source: AGHT+IGjot5/qbygJ+MNRdyXqZUydHLOkiRglL9J68mmCxL7wLI/K7uUBjewLET2EHzSBNdnvO2AOLvdryFD+KIYNIU= X-Received: by 2002:a05:6902:c06:b0:e11:7c82:ba5c with SMTP id 3f1490d57ef6-e1a7a003c28mr24919089276.13.1725523781193; Thu, 05 Sep 2024 01:09:41 -0700 (PDT) MIME-Version: 1.0 References: <288ff84b68a6b79a0526b6d53df2df5d184b5232.1725481503.git.josef@toxicpanda.com> In-Reply-To: <288ff84b68a6b79a0526b6d53df2df5d184b5232.1725481503.git.josef@toxicpanda.com> From: Amir Goldstein Date: Thu, 5 Sep 2024 10:09:29 +0200 Message-ID: Subject: Re: [PATCH v5 11/18] fanotify: add a helper to check for pre content events To: Josef Bacik Cc: kernel-team@fb.com, linux-fsdevel@vger.kernel.org, jack@suse.cz, brauner@kernel.org, linux-xfs@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 5CB5020015 X-Stat-Signature: 77mp3h7tkwioiocyd63ow4w4c53wfprn X-HE-Tag: 1725523782-559935 X-HE-Meta: U2FsdGVkX1+gio7X6ruWONa4Cwkb79yPhznBlLpcIzHxvvhKRymeHCE9Y1MGMdVxjOxQMGR+ybNMp/p0Dmf8LkAAAaDVDai46UviETktFLyMHYm0/Wm8ypy2HqzRF3vsp/+GhmZcIb9W1h/U3tRKXGlv8vJ5OPEZW8LtB8kHLXcLBficAsGP37W1lBBZpP3WYZYpvlotYGFi3jSQO4n8mZ4sI/HQ7/5hBH2bR15m+te1zLcwizSSILE2+i8L39TwO+zhjEzPQ1DfdY+0f5Q0wynP1JVWZUa9mhv769xOpJISQKR7pjYf26UN1IXWeiYzItj3fXrV0OhQO+QSLFYs+cxJLdZ/oxCwyE9aL0dhFvocaCF1wM3e/Oy5wcLL4xkv9qO49vq3kfDcI8CjWPbqMoBk25AoXF7gl6v34F6rVVLM6QESfIAB1TBfBiwppD1cqFebJ1NWy5QrW7LsPHCVo9I+THWIu6viKny41Kb5y4vIYxmDXXKEqqFNwwgN7d9DSoJfc/ixTGRGeBEKBBBgPyoszH6b+J75andLEVQW4uFTHSb0b/dc38qw7UJ8Q6aVJLTljLo5+rHPTdrCHMgATPvX54rdpym5Bwj4qlAkkEkWuMlEq8WZIm6kXQVQh/Hx8RdVuxuYz59wwz4D7qAeRUKGdhmYDg6glY6W8ENeGPdpP9McXGsoU6VwvJ4BOZATZYDqQ31QYERSG3l9tG+6n5p4HOapprxyG2srdrbidodZ+LVKsSgov4BzQGrxU8O8NjjWeRL0BSTFVikabbto7o/RPqNfqnC6N4oclsc0iajYNx973LN3KwNVnJDGBdcB2OhYBzvZNNvdfa3azHQuzN4xWiHomTh1vvfO+meVeCpKvN6kusdfw1WxLEgQ+BWJ1//Claep9yURSTAFJpw3IvtPtfhW++M/B+dIMLQMmun8G5NRnyYNbtM4XsRqcU2XQk2PfXz3iMEGr404It/ 1vMGZrew +tX9UJFsbIyhTTsLacB51x9hTBij1N+MDm752FvwiiZ7MYFng8cp2PA/RoNYmS5Vz9sQZxY8FEEvnYdMmHhyeg9GFXP4xP7lbnwdNSJLhM12Gok6fvaHOVOcqNIVZpfHFYeoOUXrOMLGZFlbpWZrmxnZZGLwC0Ckli4agk7kJsEkUz/E8tC3V7WaWmUxKHrvVLlQubnXWDkPh4CDJvqcw6LUWy+nv694BZ0ra14QDS9TWJmOuP6sny+AoWtfsFFkWI9Nw6XIsjN071oKaJ+ljVfnfTvSGyth1F1lYYIcGuXQRW9HvOTLIahaHhoS8X0594JFHeWFK/SLe3gmfUeV+VS0a7WwJaE2koCxqclQcij7QW1p63eKDAB2qMqZ+j+PwIv9HeRSy1xraHUCpZcZJYyVOe+CfiMq8+mUdxFevzx8BXjk7kEnMXgQdWA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000119, 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 Wed, Sep 4, 2024 at 10:29=E2=80=AFPM Josef Bacik = wrote: > > We want to emit events during page fault, and calling into fanotify > could be expensive, so add a helper to allow us to skip calling into > fanotify from page fault. This will also be used to disable readahead > for content watched files which will be handled in a subsequent patch. > > Reviewed-by: Christian Brauner > Signed-off-by: Josef Bacik Reviewed-by: Amir Goldstein Thanks, Amir. > --- > fs/notify/fsnotify.c | 15 +++++++++++++++ > include/linux/fsnotify_backend.h | 14 ++++++++++++++ > 2 files changed, 29 insertions(+) > > diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c > index 1ca4a8da7f29..30badf8ba36c 100644 > --- a/fs/notify/fsnotify.c > +++ b/fs/notify/fsnotify.c > @@ -201,6 +201,21 @@ static inline bool fsnotify_object_watched(struct in= ode *inode, __u32 mnt_mask, > return mask & marks_mask & ALL_FSNOTIFY_EVENTS; > } > > +#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS > +bool fsnotify_file_has_pre_content_watches(struct file *file) > +{ > + struct inode *inode =3D file_inode(file); > + __u32 mnt_mask =3D real_mount(file->f_path.mnt)->mnt_fsnotify_mas= k; > + > + if (!(inode->i_sb->s_type->fs_flags & FS_ALLOW_HSM)) > + return false; > + > + return fsnotify_object_watched(inode, mnt_mask, > + FSNOTIFY_PRE_CONTENT_EVENTS); > +} > +#endif > + > + > /* > * Notify this dentry's parent about a child's events with child name in= fo > * if parent is watching or if inode/sb/mount are interested in events w= ith > diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_ba= ckend.h > index 276320846bfd..b495a0676dd3 100644 > --- a/include/linux/fsnotify_backend.h > +++ b/include/linux/fsnotify_backend.h > @@ -900,6 +900,15 @@ static inline void fsnotify_init_event(struct fsnoti= fy_event *event) > INIT_LIST_HEAD(&event->list); > } > > +#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS > +bool fsnotify_file_has_pre_content_watches(struct file *file); > +#else > +static inline bool fsnotify_file_has_pre_content_watches(struct file *fi= le) > +{ > + return false; > +} > +#endif /* CONFIG_FANOTIFY_ACCESS_PERMISSIONS */ > + > #else > > static inline int fsnotify(__u32 mask, const void *data, int data_type, > @@ -938,6 +947,11 @@ static inline u32 fsnotify_get_cookie(void) > static inline void fsnotify_unmount_inodes(struct super_block *sb) > {} > > +static inline bool fsnotify_file_has_pre_content_watches(struct file *fi= le) > +{ > + return false; > +} > + > #endif /* CONFIG_FSNOTIFY */ > > #endif /* __KERNEL __ */ > -- > 2.43.0 >