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 8E9CDD637A4 for ; Wed, 13 Nov 2024 18:33:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 210A86B0085; Wed, 13 Nov 2024 13:33:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 198B36B0089; Wed, 13 Nov 2024 13:33:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0129E6B0093; Wed, 13 Nov 2024 13:33:44 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D20C86B0085 for ; Wed, 13 Nov 2024 13:33:44 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 85808C0AC4 for ; Wed, 13 Nov 2024 18:33:44 +0000 (UTC) X-FDA: 82781918730.25.E823B7F Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by imf04.hostedemail.com (Postfix) with ESMTP id 0512E4000A for ; Wed, 13 Nov 2024 18:32:47 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Gqv6xrDq; spf=pass (imf04.hostedemail.com: domain of amir73il@gmail.com designates 209.85.160.181 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=1731522587; 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=cEAYPbzxEEGvecCJCUytCkqZZ5wbRQKBjqWUJAfVZRA=; b=6pv6ZFG6uN97ECWKkEXRPkvwRIeWdS5rTdHj0R4NBspiS8hk74t4aYNxkis/k6ucd2e/AG +8mi6XZHyi8+MZjY+CdEtroKp7KckVFJ4oEvQUBeW7OPfgyITNd0OZUNYkGLqTQVVRhaCk q2TMgEOwF7Msq/OCj/gSOoH+9cbdLHw= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Gqv6xrDq; spf=pass (imf04.hostedemail.com: domain of amir73il@gmail.com designates 209.85.160.181 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=1731522587; a=rsa-sha256; cv=none; b=oBzBGlvyJnHtxL9bsPrQztIv6LonMvYoQgrI7tdgUEJTcNeUCk0+sUW+O+ssXeGng8pb+u vd4xmEd4ukQ8sMX3qyMwU6X0WF7F9UQ75aAJZudKnmZc1kk0xeFZ7156fdMih1SsqfWT9e h5u6SIQMvigzjNRpx6sNwjPwJIAt9Jk= Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-460da5a39fdso51725031cf.1 for ; Wed, 13 Nov 2024 10:33:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731522822; x=1732127622; 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=cEAYPbzxEEGvecCJCUytCkqZZ5wbRQKBjqWUJAfVZRA=; b=Gqv6xrDqtbASVQ3oNdQfrudm9lSJRHccDXI6/EjyggHbEjaZVwg+1P0KJk39E8gHW9 YTjmw/sKFMID7OtyTHU2JFqF5n/YS8Xwm9ZS+da1h89ME2U9yH64YqebzgDgsBEV/vft 2VQZ0jwFslxoe22QFEXGpDsY+vDjB88MsO07HB9kmkt0tBjSedFerGAEJsXXsqPMUAlT shA9BxCkoqnj6xNqrsfp38r2YsfexAlWVG6QPG9Iwxjh6W9kAkA4pyDHsygVXOnBOs6u vOx80gJzb28jDciFJb2+x8JDaau2eySgdytUjQ6ZJ4a2e4Q9jl6/tIKrkEiZ2OojP+Kl Ol0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731522822; x=1732127622; 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=cEAYPbzxEEGvecCJCUytCkqZZ5wbRQKBjqWUJAfVZRA=; b=uH9yczmeEOngGEn66mvnldnAFAs4dlixYekLGQiKia29WfHg5HXfTYqmqS636D6Woj rEM0dcHUa+Yx8M0X9niLPbo25YvVBnD548+ERhX4Lc56TPIdbYbUr4Vr4F5GHhTLXHkF cqEDoP1aMEN3IAerPhTiJkUoZriwHhSgJ1PmaJw2dGYOy9MVDEsaA/18Umf6DiSZ/Yqw fTkws5jaq+xxBMlUcJmeTF62BFqi8+RPAjDYUhMtuwhcJ5itmogekJa6V8iyzzC40+QK ofnLFpxAWnIiV7ZfDP6GCecr2KqSO8d9lhs8PqnTVC4K+RvoRHz8SuRRCnSJttjHkaBP Bwww== X-Forwarded-Encrypted: i=1; AJvYcCX21D4UE9yodnm70zUfoYDNN3QRnpHk/VChi7w3LY9gk+0HOoqs2Kf+Qc9KFb9+4aaOZBu7JfgKCw==@kvack.org X-Gm-Message-State: AOJu0YzhA6XNAeAUYuHdlUktv/y49+H6QO3RiBSRxCTmjnGyNof8sobL qUtYGdwXL/2uRIBcC7aYRdNqGsEasIKdlQtMSbw93YUhGdrC09Zb/fRWbSUB1Ur248ZQXmwFtb0 srFri4l/8Y5kFxqU22XEajDN/izU= X-Google-Smtp-Source: AGHT+IFPeK8LsWBd11UIJ1HMjFwTxuHxrQfNEAnlG5VRDPByzvKN/slVc8pIz4HMqf/6Jwtq6PY//EGtUUqdQ2qDnfs= X-Received: by 2002:a05:622a:1191:b0:458:34df:1e6a with SMTP id d75a77b69052e-46309421dedmr307570801cf.48.1731522821788; Wed, 13 Nov 2024 10:33:41 -0800 (PST) MIME-Version: 1.0 References: <44afe46517b379b6b998a35ba99dd2e1f55a2c7d.1731433903.git.josef@toxicpanda.com> In-Reply-To: <44afe46517b379b6b998a35ba99dd2e1f55a2c7d.1731433903.git.josef@toxicpanda.com> From: Amir Goldstein Date: Wed, 13 Nov 2024 19:33:30 +0100 Message-ID: Subject: Re: [PATCH v7 12/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, torvalds@linux-foundation.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" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 0512E4000A X-Stat-Signature: 6zskb6ifj1b8fjhtbrdri4rt8gsctogt X-Rspam-User: X-HE-Tag: 1731522767-783989 X-HE-Meta: U2FsdGVkX1+CBq4m+Y9us8Ghv1XsTXuo2KGGGxwd+o2R1M20rGHDtHFo62cEyjLWfA7Ea0+ulviS/poBJzJEl5hX+HGQFJoPeqpmbNbQh7LhlXEJGEj+qNA5TSub1KUwhEOWUUwPDlaeyc4wDKFE4EZcGu56PYlGYP486W4l+nMwzc5UWGyh2k8IHFm8zWNX38Fc3H55U5eObDPDoJEqXrlrEGL/vjOmQ09neN+cPLkIpR4nfDnOFcxSNXnHViJdVKFSpbFWtHtdsTBoWoJlnXZBTGGCGWexh0VBSuPFiFlEdCt0Uwb/19kzwTvBxIEZXihIaBONjmNSRpaUreGs5/uesBL1kt+eMqcCI8U93VxNHIL8y/gZCaDJiFki6o9tdvEOK/PPpqZtIAyg7zGt6Rc+4ffQL9t38cmdFkFGspPQilSZJZi13e+IBZ2ntcI4QFTYk6aAkO0ZiISSvXcOxYaEVsxhvNKHDMNa9IMh2LL4ZqBZX4IIMpgzwUuH9l9tOwJ/R2U0csCiDRYCrBENT2usH/WIfDP32zYuBDhwOavdHeGVupYRmeUBmo95kOlFiqcAsrtDT+eWqQt+2G7QJ10x5TU7tyZiV4hpC++a0jtRw5p+2Z+YI6f2i2sG15mk2+V6PzYzZfkfzkGilSqZZu+LqNa9/aE8JAs1guzPZaHPLcG5XlErIs/EsHf44AhSzc1H6Bc3utu7zPYfgngiqRKzgufZom2xDaXTPYMxqE1w9SGAvJaZq8n207TNqnyc/JJS5w62tvA4ig3xxi871bzSt59Q+yucdvM9DSIW9RrtKUwghidwWoQa1DGv/H/AZ96ogcTZ0+23o1LQTyq/d9ANMR1ubifrhMGMIwQ90Sm8dl/kverQL8+nKAQ+KALOpYbo/63HNdyDn50ZKa26M+Q8Zw7R4LIxsyNs+/IVMVWd4Xya7Uln2ezDwoF0oEZ1c5dDT7vIWK0a9MreqTf N+baZj2z nbP7CYnLu7QD+6a1JQw4l8HF5O5uXZa0xI1k9/cNooEAZzvFgUlptnGCxUPnASsinZqvgugyONAlKF1EopQ4u9/Lodeq0LgQ9ay5WFLbgjV/dVVUAkL92rOahXdZOVEM2knfeGad4JjkO8IehrZCm+wjc/9MXsDGiVDhFLfPkYWBfKp9sN2oQXu4DPFHyrwAKr/9U5iVx4F7N9O1hJdf5NGdcnENE0Vc99JdR+SBCE19HQqP5LvqGxQw9M7n6rzrZogPpGlUPYFy0KtOMXiaa5FtY+PiT8f52Ijo+ey1/hzEn6mbXdJN4zSGlUTF1rX4i9Xye5WnknDnAzMSrb4SxVnICrrAUvCgySlYzdyL74Re0gMiTlEi+n4F4AYZvib+yp2ZB X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, 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 6:56=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. > > Signed-off-by: Josef Bacik > --- > fs/notify/fsnotify.c | 12 ++++++++++++ > include/linux/fsnotify_backend.h | 26 ++++++++++++++++++++++++++ > 2 files changed, 38 insertions(+) > > diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c > index cab5a1a16e57..17047c44cf91 100644 > --- a/fs/notify/fsnotify.c > +++ b/fs/notify/fsnotify.c > @@ -203,6 +203,18 @@ 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_object_watched(struct file *file, __u32 mask) > +{ > + struct inode *inode =3D file_inode(file); > + __u32 mnt_mask =3D real_mount(file->f_path.mnt)->mnt_fsnotify_mas= k; > + > + return fsnotify_object_watched(inode, mnt_mask, mask); > +} > +EXPORT_SYMBOL_GPL(fsnotify_file_object_watched); > +#endif > + FYI, I was going to use this helper to set the FMODE_ flags, but I noticed that it is missing the check for parent watching pre content events. The other user of fsnotify_object_watched(), __fsnotify_parent() explicitly checks the fsnotify_inode_watches_children() mask. I will need to add this. Thanks, Amir.