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 BD458D6DDED for ; Fri, 15 Nov 2024 11:28:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 177516B0082; Fri, 15 Nov 2024 06:28:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 100B56B0085; Fri, 15 Nov 2024 06:28:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EE3166B0089; Fri, 15 Nov 2024 06:28:17 -0500 (EST) 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 CCFF16B0082 for ; Fri, 15 Nov 2024 06:28:17 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 8535BA1504 for ; Fri, 15 Nov 2024 11:28:17 +0000 (UTC) X-FDA: 82788102684.17.2F332BD Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf11.hostedemail.com (Postfix) with ESMTP id 884BD40007 for ; Fri, 15 Nov 2024 11:27:19 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XyjbFZdG; spf=pass (imf11.hostedemail.com: domain of amir73il@gmail.com designates 209.85.218.47 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=1731670006; 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=1AN2iU5YfWRjM+o8SXWibldu6ebg17KH2JFxv44/XqA=; b=waqgMaE8++a72bONpedxZXj5MwHTxPJVmcmsIKEQxn73VGdLO4eq8M4ljx9q8BvNxRXFHj oJnrE+Q+tgZRihx9sdB7E+2/rMbzSJmw6yq8rlsu+B4CRGvJYqd7hXmqZ/QSaU593Mq5Jf a2oqSQWL6uMoA7n2IJw+8tNHa/R6XDs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731670006; a=rsa-sha256; cv=none; b=7Vb3PoU7bSpRYB/bSRcsRXPHRQGB0w6Rk1CWKZYyhsxzKWTDvQwzNk7dr9QBjdUDCuCkKf YgZSnDmWKhddv28WLarGvq/oLOJiW/vW8Dk8Wa1FxILKr7bO+5rBxS8Paq1ZgR1Do4Waa0 oJDLzoFNPb8cRIMjWUBewhj+L7wvTAY= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XyjbFZdG; spf=pass (imf11.hostedemail.com: domain of amir73il@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=amir73il@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-a9a6acac4c3so283195566b.0 for ; Fri, 15 Nov 2024 03:28:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731670094; x=1732274894; 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=1AN2iU5YfWRjM+o8SXWibldu6ebg17KH2JFxv44/XqA=; b=XyjbFZdGFmC1N3tTPJYvR/WmfbigKwui4KFbBbLWL3IQ0l9Ns0Hxq7jn+q/lZ/WBK4 pP/qxpQuXQ+fcAuAJrlbsW4UdbSgj2dN6+bs5Id/zr4rVRTbqkJI+ixYLXUc7KvRJL5u Cf1u/GQgxYRIylDkLUC/dX2xbsniJyNA9k8WB+2rFg/TVtwFUPvU+/3ciTvjOQpIKBUK bRg3CqhDcnw05JGe0U1ZHFU3dRXUXjAFFYt8ZPcsLslT68wHMHBiLUYbv3EYP5vLXCHD 2OBtgeS7ga3MO4Mn73bt9fHIadS0lYVpqBJGEz1tvhiEyUM2zUoh0Q11Gjnex4sFzNpg FeNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731670094; x=1732274894; 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=1AN2iU5YfWRjM+o8SXWibldu6ebg17KH2JFxv44/XqA=; b=BDuzkRHZuBmq8tkNgNawUzVF2vmJAmDQ8IeMR+HuMJVdPq5NxE8+sASUVCGrRrTlC+ PFIBD+IMCoy3OSzjXNFC5doqLSyef8NONPQNyVUITYZxUbAFTlGySmlUsf0n60WtOzei 9kebq83wDFr2F3kNCKN1WukQ2RtjTyPxIRIlQ4u/VZk/42aYOWNtv6WvYnsM4emPFH5K /mIWvtFuss6sKQw1kpC1YMYY4F/66RH9lUCLLH94awL2XCrs3FdgyAFflUjkGPG+12Yk 0N8XZflehuJ8TjGBfEHclFqAuAL88l7szLBzqH0VeuO+PhI0DTdCwv8zY2t6IOVSu26I x17g== X-Forwarded-Encrypted: i=1; AJvYcCWXTc2CaUFwoyeyFZnCryKPJRCuThhQlZBeIhe+AVrNqK5DOrnN5xNx+dMmcSBKSbQ6OGAe0OXfrA==@kvack.org X-Gm-Message-State: AOJu0YxDK36RcBSItvExLs4J926HLma3djtzkfXpXTDLAaJgst3F91yn ptUdTc69uB1+U2SOQE6DK2FoxBHdD9Pjf7X58nIZOsYBBHtN6weQ1UHlJuoPZHicpfNs8Ha5e7h YLQ/r3mtqWgR7XKIHfh2j+Jfultc= X-Google-Smtp-Source: AGHT+IGYypC0GVLasX8uBhhPmCl/H0ZB0+SeUSSAkPY0iN71VwzuX38UCdXokyIF4LPVD0+930tknm4D4ZOv3FQr9fI= X-Received: by 2002:a17:907:6ea4:b0:a99:ed0c:1d6 with SMTP id a640c23a62f3a-aa48355271emr183894066b.49.1731670092423; Fri, 15 Nov 2024 03:28:12 -0800 (PST) MIME-Version: 1.0 References: <8de8e335e07502f31011a18ec91583467dff51eb.1731433903.git.josef@toxicpanda.com> In-Reply-To: <8de8e335e07502f31011a18ec91583467dff51eb.1731433903.git.josef@toxicpanda.com> From: Amir Goldstein Date: Fri, 15 Nov 2024 12:28:01 +0100 Message-ID: Subject: Re: [PATCH v7 09/18] fanotify: introduce FAN_PRE_ACCESS permission event 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: rspam10 X-Stat-Signature: tbipbrbg6jh5ptqzuf7b8ik8ayip61z7 X-Rspamd-Queue-Id: 884BD40007 X-Rspam-User: X-HE-Tag: 1731670039-71519 X-HE-Meta: U2FsdGVkX199BAeHCUxISjRCmlUiS3MAXRbApxPgNgyl9OuTYpJjOtYWGSZ4hu9Uo517CErX3QQDYtA2D7ZISn6pq9wlDGVAHqruN0u3emF19fMJqs9ZgltedKP0wY5zQShnSQF18/eGMHBLYJ2pLRnuRHM+Mq7sJKSQaL/JYVSGSM5r7PiPJIvON1Av8fx2TVbT4QWW3k28BMZ9Lyl/bzc2Ww8jQVg10BitFvfkb97Nr6d6tDGKNnqyZlUaIvSuJbtke4arLIczaKLgoCstH0PNibIg7FSTA38zfIPFWPJlLNBrI4z+g64ncAG7227kL9tTRME2OQBwrW9FsEz7eidnFHh8AHofH2VzFJ89IhtaRQLHmYpAF443+VabRU2FdWXneOBPnCCBbbzuOcEHljx/GmAEZdgVx1DDE39aY2xIvdNsbsAlVOPc8qQasuhI2v3huqtnkC37jc0CV3VFg2kfAvOa7ml2IMRN6dS2DM91sPXsnr5pEp/Y//JHBdCXdpdosNnsvpkqvfuz5gARd2wtKZ91JbUJ/t/CIGvV3RtWp23Jv+DUVPkkdyWqV9JnA/XvIb/DRb57KMl/6tup8ks75e0wtkxFDkwmGvqkOKShlHivgp4PgKK7XQIYVBnOW8IJkx7EguQNRjrbwnxklxwK3b5HE4s0ISWv29xXJJuXKZHx+VQC1aE1MO7aKFEvm67ArrWdu3FLz2/2cLMCq/wqcsX6TA77LQh/cFcaDQZyfDBxmr+a7bIyiFkXNgD56gkH6fTGbJV1WOPHw1uf3nmTuZn3Ao3hQ8WjRaCvVExQuyco8/ENjIyeukcjdmvnIt62aIqLOcRKTcV4M147Az8jKrj+yxvSgUQSSniFFGmzeMtpWpX0kf0kApEdpzdRgYdPYn6gHMd2wrSHyQR658VBQxoveT9pdjByS3OZ+zQHkU3y1MpLOv6w8jg59syBPcdrsWpITooYm2da4QC dFmULFBz KVr+RtP+9ejLnsL7vofZIasMh/XxyHWg/oOnamoY0RmjsKGotUfqPOqVIXCnHHOVR/2X/cSDmWCsd/7tn5fjyABuwmlujoytxO6j4OrmbOEFXU+DHY7W13WjGwk9/bCRYFfpgqv7PSnVlIOSI8EMXc8QUbIfyT30w866sGpewykQDwdHXdtGuUzLGV2tyWrh5qQ5DBLgnjL2U1Kr5+LmHFxP7niRs3/BSUX+lLYVVuB8rsW9aLKoW/WdPjubIK1xGZy83s7Ga2PXYe8O9gnez1Dv+3ZrIkFpl9aTTv3gY/x9r7fM3COCmBr6PfMGErMv/mWXA/QDfNoinz+wK+/bTj6c6n+X49a3PYMz7/iKZCqJDor8eUlTLrLouZPypOuwTkgITMs/gpu++XD+adtr3UWm+JiPHtV31+el+1otV3lMvK9rWMNxeCObhoTsww5sanU5V X-Bogosity: Ham, tests=bogofilter, spamicity=0.013156, 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: > > From: Amir Goldstein > > Similar to FAN_ACCESS_PERM permission event, but it is only allowed with > 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 > --- > fs/notify/fanotify/fanotify.c | 3 ++- > fs/notify/fanotify/fanotify_user.c | 22 +++++++++++++++++++--- > include/linux/fanotify.h | 14 ++++++++++---- > include/uapi/linux/fanotify.h | 2 ++ > 4 files changed, 33 insertions(+), 8 deletions(-) > > diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.= c > index 2e6ba94ec405..da6c3c1c7edf 100644 > --- a/fs/notify/fanotify/fanotify.c > +++ b/fs/notify/fanotify/fanotify.c > @@ -916,8 +916,9 @@ static int fanotify_handle_event(struct fsnotify_grou= p *group, u32 mask, > BUILD_BUG_ON(FAN_OPEN_EXEC_PERM !=3D FS_OPEN_EXEC_PERM); > BUILD_BUG_ON(FAN_FS_ERROR !=3D FS_ERROR); > BUILD_BUG_ON(FAN_RENAME !=3D FS_RENAME); > + BUILD_BUG_ON(FAN_PRE_ACCESS !=3D FS_PRE_ACCESS); > > - BUILD_BUG_ON(HWEIGHT32(ALL_FANOTIFY_EVENT_BITS) !=3D 21); > + BUILD_BUG_ON(HWEIGHT32(ALL_FANOTIFY_EVENT_BITS) !=3D 22); > > mask =3D fanotify_group_event_mask(group, iter_info, &match_mask, > mask, data, data_type, dir); > diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fano= tify_user.c > index 9cc4a9ac1515..2ec0cc9c85cf 100644 > --- a/fs/notify/fanotify/fanotify_user.c > +++ b/fs/notify/fanotify/fanotify_user.c > @@ -1633,11 +1633,23 @@ static int fanotify_events_supported(struct fsnot= ify_group *group, > unsigned int flags) > { > unsigned int mark_type =3D flags & FANOTIFY_MARK_TYPE_BITS; > + bool is_dir =3D d_is_dir(path->dentry); > /* Strict validation of events in non-dir inode mask with v5.17+ = APIs */ > bool strict_dir_events =3D FAN_GROUP_FLAG(group, FAN_REPORT_TARGE= T_FID) || > (mask & FAN_RENAME) || > (flags & FAN_MARK_IGNORE); > > + /* > + * 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; Should we make this return -EOPNOTSUPP? This way the LTP test could report the accurate message "FAN_PRE_ACCESS not supported in kernel" vs. "FAN_PRE_ACCESS not supported on XXX filesystem" Thanks, Amir.