From patchwork Wed Mar 12 07:38:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Goldstein X-Patchwork-Id: 14013031 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95FD41F426C for ; Wed, 12 Mar 2025 07:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765145; cv=none; b=tEK7JUjgZT/YUuHUcA/1VbeI7REJ/VeCisl5KjedB6M1eLG2YDU1IoHNIx1Z45WVO+uVpXxSYc7qCnIADodYWm8gLaKPWt/xovpljxFb51CNmuYi1r3uE4W6Vuyu+ka+TFWJSmpehfC5jrF0lwXa5F7J9aXZynKVpAQoOE3H88M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765145; c=relaxed/simple; bh=dUT/Horn/xB9U4WtvRAFzbCih72mRsBFChhi1sdcDc0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=GlExFoG9EWi93Ooc/AoAF0g0EQR+cqM/SVa699G+GQOyl6rLqzlwJ+2K3+hA9blevYvmXIP3Ef/K+PaMynIl0Me1yuAXYtosQQUjNIaqtFxuK8CsaWKdW6Yd8rHlBehNdc+E/MfuSXTCqpl88JdW5qoQm5Wj4eWQ5k3b2iX8NNs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=agJ+SOKe; arc=none smtp.client-ip=209.85.208.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="agJ+SOKe" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-5e6ff035e9aso2826557a12.0 for ; Wed, 12 Mar 2025 00:39:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741765142; x=1742369942; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=03YOnOl88xEJBw85xWx+NVwio9Mn2vHchSpG1oPmc0E=; b=agJ+SOKecwZCWtBvWWY4Qf/A31Eyl4HeGFxltQmv+rxjaGTD2s+5C5RE44VHPr8yNR /X1xps53gkS8axzeuOi5wNeSYxncwMhU3Gx1PN5eskSADT7xYCW06OrmGqFiby2AJ00P Ra0HlXJE5PLvIIcMHlbPB1YOwibrDdxhXsdkieo88zbxc0GjPnHIO+FiOW+ktGthM1yG SxkrJKzNLef0aLzkeaCJbELtxoXIu+rREMKxJzYxW/fkFwCYczX7INyW8GRg62+QWcYR 5cObaGmoKa+pp+n0LNrwsPSYlTwzN90xYu6AJN2pp8j/I4/2dwHnJbeagbytF7V150vd /6MA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741765142; x=1742369942; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=03YOnOl88xEJBw85xWx+NVwio9Mn2vHchSpG1oPmc0E=; b=V4nhk9ij8phRHwutGYJWSLLKmQEAtcbZrJU88GkR/fyqCnKa+G4v75b3fcuUBc2uI5 PkJRMuFVJkZ7lAZDqusDuQxRTjNqBO2MgulkwGaiDbtVoAcWQ31SgoevAwt8mltTmICQ MhpVUswjF0GDkPzYi0C4u9s8jTvBFmfJY/871Hj87zK2scPlHN/t1RA2x5sk9SvjM7vT +oybLEVQF/dNBgOwgQRWLPurihY9wqdIFYLceHThX2fhR6G6Plb73nWBP5RE1c0/wu6s JuoLEBB3+wvVxUuYXF9/K/h8My2adK8RJzspHmgGWrNnNFk8ZC5vVh5A6MWHzzht9njq f7UA== X-Forwarded-Encrypted: i=1; AJvYcCVIKCcPuDwrtzZWg6nxSUEiF9HiSAK8ZzZ3sZoevrloCmc6GYPuPf9IltogASXkd5m/8IYvy7gBEQqMB8o7@vger.kernel.org X-Gm-Message-State: AOJu0YwkgNyu8OX/B+RWtUEDeskl3dTeJ8brX1JnTsXi61mvUT77McOO A9lbIEe9BF9QhvG1wR81hewCCJcT1jO+/hZ3WqsuOgYTYOhGwkPa X-Gm-Gg: ASbGnctSk8mVLVM4Tihwr5kMg/CK8YYq0GNvbqBnUPX+iK95JC49YR0qW9sy8UNgdRN ss761UXJ4a8gKf81yVB6UU9ExhX19N6dCwFYMb0w5ZKe9DOVYSaUmNalVCWUrSzEO5OCJQ1hP9L Mo1SbXQLM2Usww1M5u3+sDiYOIJDJ7i3YsEAVXBY3rJedeMGzJsRhgDV3MPB2I+L8WNrR7gIFSJ 1DpuKR1xJ7I44el+aejx+O2LGVQxNhhvayU9zF5LvRIWyXZmZEgEnGX5RkDG1VUN955CBAXodH8 LA4xe2HBJdR0ux79YCGVepjAn24b84Tn06HDeCMpUEu3Ma/cAct9j8YrW7LCmPW+nCwLNftJ+9s absST42AXmoHvCupidHGxMqwmyjdnaNu5MNl88DRwgA== X-Google-Smtp-Source: AGHT+IEE3JbAnv91rmuTF9IPY3BS91QrQYDjUUWN6zCqGM1f82UcL5DCcGUwsefyz04t9LtyjTUApw== X-Received: by 2002:a17:907:6ea1:b0:ac2:b414:ba2a with SMTP id a640c23a62f3a-ac2b9ea18eemr1048918166b.37.1741765141377; Wed, 12 Mar 2025 00:39:01 -0700 (PDT) Received: from amir-ThinkPad-T480.arnhem.chello.nl (92-109-99-123.cable.dynamic.v4.ziggo.nl. [92.109.99.123]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac282c69e89sm624740666b.167.2025.03.12.00.39.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 00:39:01 -0700 (PDT) From: Amir Goldstein To: Jan Kara Cc: Josef Bacik , Christian Brauner , linux-fsdevel@vger.kernel.org Subject: [PATCH v3 1/6] fsnotify: add pre-content hooks on mmap() Date: Wed, 12 Mar 2025 08:38:47 +0100 Message-Id: <20250312073852.2123409-2-amir73il@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250312073852.2123409-1-amir73il@gmail.com> References: <20250312073852.2123409-1-amir73il@gmail.com> Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Pre-content hooks in page faults introduces potential deadlock of HSM handler in userspace with filesystem freezing. The requirement with pre-content event is that for every accessed file range an event covering at least this range will be generated at least once before the file data is accesses. In preparation to disabling pre-content event hooks on page faults, add pre-content hooks at mmap() variants for the entire mmaped range, so HSM can fill content when user requests to map a portion of the file. Note that exec() variant also calls vm_mmap_pgoff() internally to map code sections, so pre-content hooks are also generated in this case. Link: https://lore.kernel.org/linux-fsdevel/7ehxrhbvehlrjwvrduoxsao5k3x4aw275patsb3krkwuq573yv@o2hskrfawbnc/ Suggested-by: Josef Bacik Signed-off-by: Amir Goldstein --- include/linux/fsnotify.h | 21 +++++++++++++++++++++ mm/util.c | 3 +++ 2 files changed, 24 insertions(+) diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h index 6a33288bd6a1f..83d3ac97f8262 100644 --- a/include/linux/fsnotify.h +++ b/include/linux/fsnotify.h @@ -170,6 +170,21 @@ static inline int fsnotify_file_area_perm(struct file *file, int perm_mask, return fsnotify_path(&file->f_path, FS_ACCESS_PERM); } +/* + * fsnotify_mmap_perm - permission hook before mmap of file range + */ +static inline int fsnotify_mmap_perm(struct file *file, int prot, + const loff_t off, size_t len) +{ + /* + * mmap() generates only pre-content events. + */ + if (!file || likely(!FMODE_FSNOTIFY_HSM(file->f_mode))) + return 0; + + return fsnotify_pre_content(&file->f_path, &off, len); +} + /* * fsnotify_truncate_perm - permission hook before file truncate */ @@ -223,6 +238,12 @@ static inline int fsnotify_file_area_perm(struct file *file, int perm_mask, return 0; } +static inline int fsnotify_mmap_perm(struct file *file, int prot, + const loff_t off, size_t len) +{ + return 0; +} + static inline int fsnotify_truncate_perm(const struct path *path, loff_t length) { return 0; diff --git a/mm/util.c b/mm/util.c index b6b9684a14388..8c965474d329f 100644 --- a/mm/util.c +++ b/mm/util.c @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -569,6 +570,8 @@ unsigned long vm_mmap_pgoff(struct file *file, unsigned long addr, LIST_HEAD(uf); ret = security_mmap_file(file, prot, flag); + if (!ret) + ret = fsnotify_mmap_perm(file, prot, pgoff >> PAGE_SHIFT, len); if (!ret) { if (mmap_write_lock_killable(mm)) return -EINTR; From patchwork Wed Mar 12 07:38:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Goldstein X-Patchwork-Id: 14013032 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E31C1F419D for ; Wed, 12 Mar 2025 07:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765145; cv=none; b=f04XqrhMIA3Zy0L9eG5GGImVWhv637PZt6n8DN3atcU4IBL2gj97ByJ1n3Y5x6lmiR+EiPbcc3WJ8DqDP3CI6dfu9+63VLKpOKoFW+AxMknMvHab6P9BD+OHFAW0dusl4nYCSA4Unji0xngWD5h9b8FREz/Ily4tzdrTjPLgDBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765145; c=relaxed/simple; bh=/rOCAt1GyVkpzHU3IkZAjzIjdK46yCqVbQSVConueeQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=XpNOJQ8nDhfKNnCkxE6Xq7FO6D+UL3JgvvT7CS/FhgNfabMWillzMxtIjHf5guhjqAxZphfE3QUmXtRVbBoeYg5WePMmnjp+qcBeVUvca+HGm3an8kSMM0qKSTfn6nbJtBH//YDUTE5uriA0IYqE3EbiSOseI0d8BOzhT3c0xCE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HeDIrOqi; arc=none smtp.client-ip=209.85.218.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HeDIrOqi" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-ac297cbe017so122237666b.0 for ; Wed, 12 Mar 2025 00:39:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741765142; x=1742369942; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZZtCeKv6mXgDvaZfcbJLDl1nCwkzDkIL3ON1FgL1MyU=; b=HeDIrOqiMlZetQleEGK4MxEiH3GpAof2qpP33nWIQDlAzXTW0Q+lldNb29V3Tzic9e jiuBthOog6CO2IZrqUECkKt5ZodwZIvEWHI8dWgWs4Owh81/udP/GgETEy45ZMBLhaRX 7EreYg4zA3yk4LOx6x/cQ1q3hJLfFwJEchyMQ1bCovMhTxP9ZPYH6wmMVmC6SsWin0Oh Vgg9jlEVwQa6pYKE4CSq1dfetrF8XeHZ2FCwLrA0cymViVmNpEnf7dbJombRoRu3CZDr 8nJtNe2y9lZe9Qr5YzelivnvhrM9tZshqkGA2YB8nLPMr3PEof+lku3gUkj5iaZIvT4s Fb9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741765142; x=1742369942; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZZtCeKv6mXgDvaZfcbJLDl1nCwkzDkIL3ON1FgL1MyU=; b=EDH8x8Qv/mnlISgdR8ubBIyYFIGyvt2Ndix2P9OU0z/YQProjzQ2rYGnggVznVEJdy 4tC54/C4REWixoo+xBi2qmWwZHZsPK2ejP1NlkY4ijNGhRhwUPV6E+ymzgdZdcnhp9Bo 5HgZ1csR76gGmYHAIRR3VE5sXKxpZwmeDQJNlOm62XQlh12Nf+R+SdPT2QEqesandD/c 0mKhZltzHw7vEfEFw3oEOZowLULyvS9JbxBQzOGQEjcImLtO+TvXfMKLXhmHZ90BvBlA 5G6ryzxfb82Savt9A4Ach6tJfK1nRP/JQH9Ouwk0I/k7eiBidJK4wGMsKQZmeCyyQGrp jsBQ== X-Forwarded-Encrypted: i=1; AJvYcCVlctGABzcSr1f/B10C1o7/TfWeahM7g+yGo6WqzsZ97GWCntwvEJ70Ob8Zpg5vOJsbPW3lM3r4QdRM3cUJ@vger.kernel.org X-Gm-Message-State: AOJu0YzEKThFLkN1XPFYSb2iKRtKLLXfRVtV0JqjdDpnqsEPV+/YpUs+ cGkXlyVostiIavkb8rSomkNDkAKlemCDylTa/a9DK7OCCx6dNbBN X-Gm-Gg: ASbGncvNsFs8yROekiWJWkeVXgAagc1MEuax0jNijvxPrSdIxHSZyzAiHkHClVnXZdN 7xoEcfETtHdPYJBHZ4Cf26qv4/YZen/2186GLNP2oqEZsxvzqKGKHQ+M5OkVK2gwqKCb+JmdHfI EpNcPOEPVKnFNIdtR5sFnuUZ3bAu8NFGdGNJTltomZz8hQxRSCBLuglUmOvtJS50nE/fu/Ma/RK CNcjty0Fqt5ztaDVaLfIfCGnQ5xh3yODH897DqLoC+7mf8PbOFZiGqsAyz6vzsw3CR2goMj1+s+ 9kKARW19OeG/63eU2JYvp44whFCjXqXDv/yRY4Nx0uOpIqWuO8FK4IY4ziZgb9dJ9Qvi1MpCbTR OROT8vKymOOfcYyuF6X+lUWI1IAgCHyUDH1lZjh4AOQ== X-Google-Smtp-Source: AGHT+IEDLicMYo5wrVMzxXmJns8T7Rc0qAzgkOVTtLk9IaHkRTIuBY/c3ap9z2y5v68kO7sqHdLuJA== X-Received: by 2002:a17:906:6a06:b0:ab7:d34a:8f83 with SMTP id a640c23a62f3a-ac2ba4ec689mr787368766b.17.1741765142056; Wed, 12 Mar 2025 00:39:02 -0700 (PDT) Received: from amir-ThinkPad-T480.arnhem.chello.nl (92-109-99-123.cable.dynamic.v4.ziggo.nl. [92.109.99.123]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac282c69e89sm624740666b.167.2025.03.12.00.39.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 00:39:01 -0700 (PDT) From: Amir Goldstein To: Jan Kara Cc: Josef Bacik , Christian Brauner , linux-fsdevel@vger.kernel.org Subject: [PATCH v3 2/6] Revert "ext4: add pre-content fsnotify hook for DAX faults" Date: Wed, 12 Mar 2025 08:38:48 +0100 Message-Id: <20250312073852.2123409-3-amir73il@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250312073852.2123409-1-amir73il@gmail.com> References: <20250312073852.2123409-1-amir73il@gmail.com> Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This reverts commit bb480760ffc7018e21ee6f60241c2b99ff26ee0e. --- fs/ext4/file.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/fs/ext4/file.c b/fs/ext4/file.c index a5205149adba3..3bd96c3d4cd0c 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -756,9 +756,6 @@ static vm_fault_t ext4_dax_huge_fault(struct vm_fault *vmf, unsigned int order) return VM_FAULT_SIGBUS; } } else { - result = filemap_fsnotify_fault(vmf); - if (unlikely(result)) - return result; filemap_invalidate_lock_shared(mapping); } result = dax_iomap_fault(vmf, order, &pfn, &error, &ext4_iomap_ops); From patchwork Wed Mar 12 07:38:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Goldstein X-Patchwork-Id: 14013033 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCEDE1F460D for ; Wed, 12 Mar 2025 07:39:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765147; cv=none; b=NBDpzKjZAcMLQ98e7zg1WZ+uAUIgLzI+cdXH+e/ZS6OKHoFCjNSjxtJ8f7PXEcKRQ4MEVBBxOHZe4uqzhrzT5pDfMqyP5UxgR3324PxDpgSCt2lpQgOv+/hcZ5pJsuy+ZD1bBYgsUvEi0r0iacehGeLYwKd+XYCmTWxQrFTAdOc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765147; c=relaxed/simple; bh=bTK3jtftynOv/WlNZDvT/yF/UXzCPiJWj2Qcmbp1dbk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=X9fSHSd3AZH6VZYJ3OtVP1bkNBdquKeYMIgFqWwFWPqgLg5O83qP8fgVFq2N05+qLMaTxLF6Df5thgAmKfFgHcGT2sviI6B0ESETx9NZ0ceJv0VTb0tHUl8VGPydb/heR2CNr6i6yuPyPSIgo5mPB3ehtax4mlIqT1lsn6FJGTs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HEFonwmE; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HEFonwmE" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-ac2af2f15d1so356757366b.1 for ; Wed, 12 Mar 2025 00:39:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741765144; x=1742369944; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N2DQBQeFfgio6scrhS9JiQpooi7cpDMvH51E4N2rfb4=; b=HEFonwmEqj1QaDYCaqiLCYYWjagXJNDUxcmYmALYVH+JTEYVqbp5vctKUYhpkVsA1e BDmP1RIFm+M7KA5WorF5HS8KG2Y+JD5PPcIPEgPSqKY/yez1KZmpIwNyz6aQNwZ1dKTy olgYMea220vhUjNI0g5HQ30WGIs9dVonx6RhdrBj/FkHxH5SIKRaIMt3sOxhzI6/lk2s fgZoYRqaJFl7FEiOW4Q0oSVav/misFkRIJ9rCq/IL8GiMeXCbDTIpbD+azIdcQ1pXvCZ M/t8bSb124KLkPySb3sgnPysS53wlaP4ZJDwCCZRnguaDic5IQitDRYgxIssftSgZdTE 0Pcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741765144; x=1742369944; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N2DQBQeFfgio6scrhS9JiQpooi7cpDMvH51E4N2rfb4=; b=rA2SFiAAZh0PvfTKQxc5fVggSbspLig9K5n5oDJg1uMRJ7MYrApQiu9QhrLxfFdKDK id21blC2+ouIxUxT3+KqhAmPyokIiswI6ECk1NSzcZNzQfNjbPCsB2lOnJxxqS/dE0T+ 51AeJR/nkWgTgkxxPg2oI+q9oTVQoR/xw4oB4+B+dwy2lDTLSMmQhD6CGbCee1qTjQg2 NJrIG5m4zy5/EFe90MIvVoLiaktbpls/jo0YBMKXugnTwdtlGKuc5GcNB+IGv0yPHqPc frL+vRvLxxLmMY9YKqlCzkbnjASSN7FCldM3ET3H91XZucareDLLkN6tkQ49jC0zWdDY /XVw== X-Forwarded-Encrypted: i=1; AJvYcCXuAPHsiUz7o9gKgk6hyByJTh1uxTgOY+63bScrK/3oo2i7edE4qQVdNj9qPA/EDVZKAcoETkOjgGramVA+@vger.kernel.org X-Gm-Message-State: AOJu0YxVXr/1XsDqK/dE2v/BCHVDsoTG44c/aD/AmH1Ovj/f37lGnWtz p1Iwn1tqq9ms9Jn+1aEL3zRoeu6FtSt2yYDflr2mNDZaAt/FVhj/b4OLdqxr X-Gm-Gg: ASbGncsOO5TdwQg5/rBNXpEBRd9ITijgb9H+7nkN8xF4zzylN82aBC3qBJ6mASGH9PN GzFpWW4jg0+bJ3AZwMawbnWbjXVghfpM5R/cjc0FDBLaDMH2/JLPCsKm5xv1kECl2VXgJjmlMFO kr7mAxtJPRlJh/QiAMDgFOu/ejdvL/I5Jb0WII1eSOG7EM1WiiBVRNaK8nTU+dTvC4Q/a5zErru 0WT4YCKAGhj7U0+iYcxUKtehWQVIa5GsuZtRFGMz7fgUxo+IJxysPVq+r2bcjU8PtOyaP5ACERO Zasq/QG0nvVSxIp+dFhqLWYsrG5DWycaHG7BfpUhRTOO1hdn2if1OZT2pBVeSuIgWmWDZmv/OjE g10EdY+NQLpE/5u7IyY5XJzI70NeNZpB6+sWAvJYf2Q== X-Google-Smtp-Source: AGHT+IHp+6imqaRdqahtNJSC0y4twKiAMajeOL008N2BmoKne5vBXzxLbY6tsDEGRYCVj53AMPaesQ== X-Received: by 2002:a17:907:c99a:b0:ac2:b684:541d with SMTP id a640c23a62f3a-ac2b9ee9204mr755158866b.54.1741765143665; Wed, 12 Mar 2025 00:39:03 -0700 (PDT) Received: from amir-ThinkPad-T480.arnhem.chello.nl (92-109-99-123.cable.dynamic.v4.ziggo.nl. [92.109.99.123]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac282c69e89sm624740666b.167.2025.03.12.00.39.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 00:39:02 -0700 (PDT) From: Amir Goldstein To: Jan Kara Cc: Josef Bacik , Christian Brauner , linux-fsdevel@vger.kernel.org Subject: [PATCH v3 3/6] Revert "xfs: add pre-content fsnotify hook for DAX faults" Date: Wed, 12 Mar 2025 08:38:49 +0100 Message-Id: <20250312073852.2123409-4-amir73il@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250312073852.2123409-1-amir73il@gmail.com> References: <20250312073852.2123409-1-amir73il@gmail.com> Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This reverts commit 7f4796a46571ced5d3d5b0942e1bfea1eedaaecd. --- fs/xfs/xfs_file.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index f7a7d89c345ec..9a435b1ff2647 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -1451,9 +1451,6 @@ xfs_dax_read_fault( trace_xfs_read_fault(ip, order); - ret = filemap_fsnotify_fault(vmf); - if (unlikely(ret)) - return ret; xfs_ilock(ip, XFS_MMAPLOCK_SHARED); ret = xfs_dax_fault_locked(vmf, order, false); xfs_iunlock(ip, XFS_MMAPLOCK_SHARED); @@ -1482,16 +1479,6 @@ xfs_write_fault( vm_fault_t ret; trace_xfs_write_fault(ip, order); - /* - * Usually we get here from ->page_mkwrite callback but in case of DAX - * we will get here also for ordinary write fault. Handle HSM - * notifications for that case. - */ - if (IS_DAX(inode)) { - ret = filemap_fsnotify_fault(vmf); - if (unlikely(ret)) - return ret; - } sb_start_pagefault(inode->i_sb); file_update_time(vmf->vma->vm_file); From patchwork Wed Mar 12 07:38:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Goldstein X-Patchwork-Id: 14013034 Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7921D1F4C85 for ; Wed, 12 Mar 2025 07:39:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765148; cv=none; b=vASndRCnX8+uJn8jeOLqeyfdHZs9yBW8eQsfkkMyHPxhzUF/TghnrW04FsdgkbYYGj8tsBxgs+8QCJ04wg8uQNFIXV3Dvj0vzEoikyFk7P9arLGC+DjsTN9+6yYdiJisv3RFzj+zBs4n7B0fVUrPCHSAAvCCusupBEkqw4UBb5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765148; c=relaxed/simple; bh=CKp10scVDJl3/78PacODCH5S2HnQy1oE2Wz0Xm2u9Lw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oLR5SQ6SKXUSj1qnD/OLifz7FuzSdD5SVNJD8/jVA8rabpOHSrSq9OYnvSqZtUkhdL3Wm1/EXLne9oXcnwGamSfriAgf/mBx+9IywC4o3AAD1iwCzDa7smsKA3i/UYzB1ixjB+fD+6h8wvAZJG/kHn1LhBtG6CQB+cct7kROJWA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=b5O1KuK3; arc=none smtp.client-ip=209.85.208.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b5O1KuK3" Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-5e5b572e45cso11632124a12.0 for ; Wed, 12 Mar 2025 00:39:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741765145; x=1742369945; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZXgNWLo9/xllBne308Dx3jLc61dwiBpHKKDO6kh8PiA=; b=b5O1KuK3xWtUNYAcIp+oSvq+3MIu40/aUy0BoACbp6Drk0ZbgLUaLoodiix5QU0gz+ kac05+8RM017OkpW6UT/ghtGTUrREeXsTVzGKZj66xLLAT/o++buJq/T5MDHeUwOQjA6 h93DJKOEz3XE8y32QC+py7salkxH7kpctvZhGdFSQynwshQbEp9lezdbXq/sqcoowDXV Im7222MRG4S8utqTrNM0SOhnRIFR9Yw0m9ZJ/n4Zbwv9ifQ5/xH+uUEHYyyg4LJzFEok 1ua22sulaWZLDKkG1RiN+9SpOILTx2M0dJT40xk5Vn7N0ovGgEYEBRFP1miKLNfyFZEM cb+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741765145; x=1742369945; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZXgNWLo9/xllBne308Dx3jLc61dwiBpHKKDO6kh8PiA=; b=KsZ5EtTUXcRXlrWISNYhAho39+HJQxqFpiWDyTwHzpj0928O16jO4ad1YtN5w1v0Ba jEbqslT85sNyrCe8E/fNsgeYz9XtySpH1xiIZESUb3Juf7v5GRP7KaPfdrDAGYE0qZ7a ycLWF+C+gjZ8seY78Vm0bU53EyjpgTx5qQoHu82Tji6NO0RvO0V7dyak1in0/s1WS3NF ryi9FB9eI3xOoE/lTuzZbzuFSJoMQ7jluHcuwzkxsWaXDu/ccPdOrNdMGCj+lP5inKUG loJLSOtKybXy29Ph6vh78hGJSQgAVCxDpXSHb7uZ6rWxrtim1WgjlD1+HefFP9kDMXvl XN6A== X-Forwarded-Encrypted: i=1; AJvYcCWrcTjer7dpSyj2VSjdvECNbigg1QXUJWpNk8t/acvjVnQD4QxfLAUHkSdWTCJ52gnBbutUYRmONX5QJIWu@vger.kernel.org X-Gm-Message-State: AOJu0YyetIwSY3Q0ve2X9jLSBeEUwB/3jXywnhJrQU20uHJfzD2Gm+Wo HcrHXXd2WfjZUpoeO998bZWleDJrHEctTIIb/DSypFsfZ/hEoYoWXzqgAI/Z X-Gm-Gg: ASbGnctes2CeFZhJHyb+EFJQN0e/u5VzHpPHcMHDha4AYTP+PmPnhdkmo9HfZascFrq 5SPu8zWnaqE2Nf3n4Z5RrnFcfbFU1BkRE0arGaP3LntZ0jDzbUfus5qVuBXnHq0aXjJOvfzo6e8 A5AiJ20zDeEAFloGAX2flkWpxNoHUxvcMnKHwOpqZOq1N34N5jNiwYzolgyL+m1cqrDI6tSDWLb I5FSQb0uqulomVGG8c93Sun5XSRFFhNEnbxNaEw1dkfB0f3erazXfhxk2GJieZGxGN250mdEbiK XcRiiX+DyQyKtaAJcOCMuAhu3nZnbXVNYKW7of5GTBDPRNNr9dAHZyB8lmyz6x8WGGjDQSpFI3n yqE74Z7u9k5qCw950gPJ8njX59HhHd9RD37+F6MHwjQ== X-Google-Smtp-Source: AGHT+IFZlBFvNJ3+RkYWE6r0gMKlv8TgMbAOeOyeC9Kk50uz28kbKy7co7dakkb4T0GaoCv2ZfEAjg== X-Received: by 2002:a17:907:968a:b0:ac2:d2f3:6c2e with SMTP id a640c23a62f3a-ac2d2f37833mr463053566b.8.1741765144345; Wed, 12 Mar 2025 00:39:04 -0700 (PDT) Received: from amir-ThinkPad-T480.arnhem.chello.nl (92-109-99-123.cable.dynamic.v4.ziggo.nl. [92.109.99.123]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac282c69e89sm624740666b.167.2025.03.12.00.39.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 00:39:03 -0700 (PDT) From: Amir Goldstein To: Jan Kara Cc: Josef Bacik , Christian Brauner , linux-fsdevel@vger.kernel.org Subject: [PATCH v3 4/6] Revert "fsnotify: generate pre-content permission event on page fault" Date: Wed, 12 Mar 2025 08:38:50 +0100 Message-Id: <20250312073852.2123409-5-amir73il@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250312073852.2123409-1-amir73il@gmail.com> References: <20250312073852.2123409-1-amir73il@gmail.com> Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This reverts commit 8392bc2ff8c8bf7c4c5e6dfa71ccd893a3c046f6. In the use case of buffered write whose input buffer is mmapped file on a filesystem with a pre-content mark, the prefaulting of the buffer can happen under the filesystem freeze protection (obtained in vfs_write()) which breaks assumptions of pre-content hook and introduces potential deadlock of HSM handler in userspace with filesystem freezing. Now that we have pre-content hooks at file mmap() time, disable the pre-content event hooks on page fault to avoid the potential deadlock. Reported-by: syzbot+7229071b47908b19d5b7@syzkaller.appspotmail.com Closes: https://lore.kernel.org/linux-fsdevel/7ehxrhbvehlrjwvrduoxsao5k3x4aw275patsb3krkwuq573yv@o2hskrfawbnc/ Fixes: 8392bc2ff8c8b ("fsnotify: generate pre-content permission event on page fault") Signed-off-by: Amir Goldstein --- include/linux/mm.h | 1 - mm/filemap.c | 74 ---------------------------------------------- mm/nommu.c | 7 ----- 3 files changed, 82 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 7b1068ddcbb70..8483e09aeb2cd 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3420,7 +3420,6 @@ extern vm_fault_t filemap_fault(struct vm_fault *vmf); extern vm_fault_t filemap_map_pages(struct vm_fault *vmf, pgoff_t start_pgoff, pgoff_t end_pgoff); extern vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf); -extern vm_fault_t filemap_fsnotify_fault(struct vm_fault *vmf); extern unsigned long stack_guard_gap; /* Generic expand stack which grows the stack according to GROWS{UP,DOWN} */ diff --git a/mm/filemap.c b/mm/filemap.c index 2974691fdfad2..ff5fcdd961364 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -47,7 +47,6 @@ #include #include #include -#include #include #include #include "internal.h" @@ -3336,48 +3335,6 @@ static vm_fault_t filemap_fault_recheck_pte_none(struct vm_fault *vmf) return ret; } -/** - * filemap_fsnotify_fault - maybe emit a pre-content event. - * @vmf: struct vm_fault containing details of the fault. - * - * If we have a pre-content watch on this file we will emit an event for this - * range. If we return anything the fault caller should return immediately, we - * will return VM_FAULT_RETRY if we had to emit an event, which will trigger the - * fault again and then the fault handler will run the second time through. - * - * Return: a bitwise-OR of %VM_FAULT_ codes, 0 if nothing happened. - */ -vm_fault_t filemap_fsnotify_fault(struct vm_fault *vmf) -{ - struct file *fpin = NULL; - int mask = (vmf->flags & FAULT_FLAG_WRITE) ? MAY_WRITE : MAY_ACCESS; - loff_t pos = vmf->pgoff >> PAGE_SHIFT; - size_t count = PAGE_SIZE; - int err; - - /* - * We already did this and now we're retrying with everything locked, - * don't emit the event and continue. - */ - if (vmf->flags & FAULT_FLAG_TRIED) - return 0; - - /* No watches, we're done. */ - if (likely(!FMODE_FSNOTIFY_HSM(vmf->vma->vm_file->f_mode))) - return 0; - - fpin = maybe_unlock_mmap_for_io(vmf, fpin); - if (!fpin) - return VM_FAULT_SIGBUS; - - err = fsnotify_file_area_perm(fpin, mask, &pos, count); - fput(fpin); - if (err) - return VM_FAULT_SIGBUS; - return VM_FAULT_RETRY; -} -EXPORT_SYMBOL_GPL(filemap_fsnotify_fault); - /** * filemap_fault - read in file data for page fault handling * @vmf: struct vm_fault containing details of the fault @@ -3481,37 +3438,6 @@ vm_fault_t filemap_fault(struct vm_fault *vmf) * or because readahead was otherwise unable to retrieve it. */ if (unlikely(!folio_test_uptodate(folio))) { - /* - * If this is a precontent file we have can now emit an event to - * try and populate the folio. - */ - if (!(vmf->flags & FAULT_FLAG_TRIED) && - unlikely(FMODE_FSNOTIFY_HSM(file->f_mode))) { - loff_t pos = folio_pos(folio); - size_t count = folio_size(folio); - - /* We're NOWAIT, we have to retry. */ - if (vmf->flags & FAULT_FLAG_RETRY_NOWAIT) { - folio_unlock(folio); - goto out_retry; - } - - if (mapping_locked) - filemap_invalidate_unlock_shared(mapping); - mapping_locked = false; - - folio_unlock(folio); - fpin = maybe_unlock_mmap_for_io(vmf, fpin); - if (!fpin) - goto out_retry; - - error = fsnotify_file_area_perm(fpin, MAY_ACCESS, &pos, - count); - if (error) - ret = VM_FAULT_SIGBUS; - goto out_retry; - } - /* * If the invalidate lock is not held, the folio was in cache * and uptodate and now it is not. Strange but possible since we diff --git a/mm/nommu.c b/mm/nommu.c index baa79abdaf037..9cb6e99215e2b 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -1613,13 +1613,6 @@ int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, } EXPORT_SYMBOL(remap_vmalloc_range); -vm_fault_t filemap_fsnotify_fault(struct vm_fault *vmf) -{ - BUG(); - return 0; -} -EXPORT_SYMBOL_GPL(filemap_fsnotify_fault); - vm_fault_t filemap_fault(struct vm_fault *vmf) { BUG(); From patchwork Wed Mar 12 07:38:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Goldstein X-Patchwork-Id: 14013035 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 18A621F4C8A for ; Wed, 12 Mar 2025 07:39:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765148; cv=none; b=rtdiNNaY33IP4tdd+jQbWezt1nIwmabhAavZloRUQ2fmIxVMPvnKVfPvMO0CT04xTeClysNmg+ga7D/Ctlz5wvfERHWWeigMh8Ta97mUmc7GpvekBff0dKXsI/4QHklZHjV68gnCBFsvVRQrja0bxqMxYF8egIwH0xIclJvclgI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765148; c=relaxed/simple; bh=zAOSInCyLBOqbcogysBcSsstSz+z2TucuDDuXjbGRsk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=dQcDv/7D+7hP27/5xY3YoH6aBwUNsz33t//tm2WqLyVf9WGF6XPqD/KkSUn/ZYgceBQDYw9mY6sqMVjqT22REpnqHtZep1hWr8GjxtxLf0KZFepcP8i89oBGaPOz7Vq2nGMiMJy6ijjeKQavEM3BOxhMEtVhTbpAsuG4KHNEywc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fmzTz++K; arc=none smtp.client-ip=209.85.218.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fmzTz++K" Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-ac2af2f15d1so356760066b.1 for ; Wed, 12 Mar 2025 00:39:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741765145; x=1742369945; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cUqFl3XX9bFpTA72aldmYe3+NmvunMxDXx44Y7AS5n8=; b=fmzTz++Kal60dlexpxcQKMiznL+fUXmKso9VTby5ylgBaigjQEHxUCHfTgpMwIPb7B fObj+5emGcTx1iAzDT4vhYEmL02v+G1wcBQeHJg+i7b9Ol4t1+JTWOwGmQuNiNKzexzy mMu8mYEj5FSoyFdXridcH+LY015taEqHICfyiiikp59UM1zRkD/VMEmYKy8wkmDFtWxv FS5FDhTGe9loqJeZhOEb4EgaEPnlwInVAmqe1QSQsI8JAXHcK2t6BXQjY3L5tKSSId1z H11kiV7Aj/DKApDeoxUNVCrOKFBIlp5j1vgSl7UiclQOW4JoB7te/X2yjOxmMe0wYbtd 8+Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741765145; x=1742369945; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cUqFl3XX9bFpTA72aldmYe3+NmvunMxDXx44Y7AS5n8=; b=HSb11pQd/Hu3CnbIVCTUphzXedlhy73kotPw02y8bdlQJk3xbqq3EBKEMPCDAYuUBv 7Q5pfEvMBHDyJ0YOuBJkzLbmk31eNTxv5pypC4YmAEaSiUQPFWQD1yca9o1KOeNLUIqL Z0Uiam8ylc25HFnnT7OcVop3ND4q9tw5aeXPOLhaLsHRYHBigjb9vXy5QpvorCMih2F8 DBaloOV9IGqey8c/1QnBogELJfa1akZtEEaNpLdiqzc+ffdMBjwnfHJZSNHtpG0VWew/ 3wgGMPGgsMoupKVwLesn0/NlfsG7mDSC6/JiDrkRlSr4FWt3hmQysoIrdksdeXoWNQm0 kuHQ== X-Forwarded-Encrypted: i=1; AJvYcCUzoEeo6DH61EeEElk9i1PEoHNKOz08usHXr7S7RRZxXnVn1zNZZW+mIT0knmSpMF+7VwRETkVlS2GLvSJ9@vger.kernel.org X-Gm-Message-State: AOJu0YzQB7yHPerd0cQVlrWUKFfCgP4Ic7V+mjpOO8X5xvNwc6+3Kkeu DG0qr1H1RCtEMZc1dT8D9Zme4iE4NRXHGdBz3U7LBb/g9B2E8x1m X-Gm-Gg: ASbGnctPJlbxjNBEMMZm9cWXBMlfHxbMOC8/z0/vIZQTmpyxgtDuGHNAPo2gdYByrTR VwG4wKGCfb6s8MRMm3LUd565oGmhY/pKuAIQq1/hrA/Sv/sjB0LAiJ8kgUCCXfbFN1ZIWNArJ8J Nyq27bcFhguJcXwWQtEPN58iK/myPImoLf2xDOHIo/wQQabPCSe0Qh2HINvx3UaDTjfomj2dEsY Z4fzoNi84fjN6hCBT8ZfdleBVGuLOuvchGJyw/7m1M1Yh8guXfH5Csj2/bpkgUQuWr0ovZErT+3 L+goeRbvZurULHG7Pl902MlHbAkcO/GmD5uY2l0VeO8UZEUlprppoy6EJEwcTYqPH973IeEFru8 Zk81WHIpHSq45JH/3Dn8JwS27vMXYnuiG6q/yvrLQX5fvP6W6PWS7 X-Google-Smtp-Source: AGHT+IGeNnqjvCLSgy05Q2rh1+Cj8TCjwW+Z5RGs67UzNrbgnb2wCne6HSLGP5CK8bNoRkReEEClrQ== X-Received: by 2002:a17:907:928c:b0:ac2:55f2:f939 with SMTP id a640c23a62f3a-ac2b9db301dmr879628166b.6.1741765144918; Wed, 12 Mar 2025 00:39:04 -0700 (PDT) Received: from amir-ThinkPad-T480.arnhem.chello.nl (92-109-99-123.cable.dynamic.v4.ziggo.nl. [92.109.99.123]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac282c69e89sm624740666b.167.2025.03.12.00.39.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 00:39:04 -0700 (PDT) From: Amir Goldstein To: Jan Kara Cc: Josef Bacik , Christian Brauner , linux-fsdevel@vger.kernel.org Subject: [PATCH v3 5/6] Revert "mm: don't allow huge faults for files with pre content watches" Date: Wed, 12 Mar 2025 08:38:51 +0100 Message-Id: <20250312073852.2123409-6-amir73il@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250312073852.2123409-1-amir73il@gmail.com> References: <20250312073852.2123409-1-amir73il@gmail.com> Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This reverts commit 20bf82a898b65c129af76deb96a1b415d3098a28. --- mm/memory.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index b4d3d4893267c..34e65f6bf0d96 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -76,7 +76,6 @@ #include #include #include -#include #include @@ -5743,17 +5742,8 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) static inline vm_fault_t create_huge_pmd(struct vm_fault *vmf) { struct vm_area_struct *vma = vmf->vma; - if (vma_is_anonymous(vma)) return do_huge_pmd_anonymous_page(vmf); - /* - * Currently we just emit PAGE_SIZE for our fault events, so don't allow - * a huge fault if we have a pre content watch on this file. This would - * be trivial to support, but there would need to be tests to ensure - * this works properly and those don't exist currently. - */ - if (unlikely(FMODE_FSNOTIFY_HSM(vma->vm_file->f_mode))) - return VM_FAULT_FALLBACK; if (vma->vm_ops->huge_fault) return vma->vm_ops->huge_fault(vmf, PMD_ORDER); return VM_FAULT_FALLBACK; @@ -5777,9 +5767,6 @@ static inline vm_fault_t wp_huge_pmd(struct vm_fault *vmf) } if (vma->vm_flags & (VM_SHARED | VM_MAYSHARE)) { - /* See comment in create_huge_pmd. */ - if (unlikely(FMODE_FSNOTIFY_HSM(vma->vm_file->f_mode))) - goto split; if (vma->vm_ops->huge_fault) { ret = vma->vm_ops->huge_fault(vmf, PMD_ORDER); if (!(ret & VM_FAULT_FALLBACK)) @@ -5802,9 +5789,6 @@ static vm_fault_t create_huge_pud(struct vm_fault *vmf) /* No support for anonymous transparent PUD pages yet */ if (vma_is_anonymous(vma)) return VM_FAULT_FALLBACK; - /* See comment in create_huge_pmd. */ - if (unlikely(FMODE_FSNOTIFY_HSM(vma->vm_file->f_mode))) - return VM_FAULT_FALLBACK; if (vma->vm_ops->huge_fault) return vma->vm_ops->huge_fault(vmf, PUD_ORDER); #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ @@ -5822,9 +5806,6 @@ static vm_fault_t wp_huge_pud(struct vm_fault *vmf, pud_t orig_pud) if (vma_is_anonymous(vma)) goto split; if (vma->vm_flags & (VM_SHARED | VM_MAYSHARE)) { - /* See comment in create_huge_pmd. */ - if (unlikely(FMODE_FSNOTIFY_HSM(vma->vm_file->f_mode))) - goto split; if (vma->vm_ops->huge_fault) { ret = vma->vm_ops->huge_fault(vmf, PUD_ORDER); if (!(ret & VM_FAULT_FALLBACK)) From patchwork Wed Mar 12 07:38:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amir Goldstein X-Patchwork-Id: 14013036 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1DCE81F4E21 for ; Wed, 12 Mar 2025 07:39:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765149; cv=none; b=AMFawA2Ff4OTNfy3LQXqPPQZT5L5f0u5yvF1oEGXnGmRcsJGVF1LI2w9NLlWKuehU8BLbtOlyRjES+2x8O4MtvH5urlCWfO/BQZP/et+t/sBlb9OZiP00cHdgqK92YW2lAFp/G0oaPg7cH77QninVldvLQ7m6twBGG1WUkw2xAI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741765149; c=relaxed/simple; bh=zHU7fAgz/yVAdx3Q6xDKr89jH5p39xq3rCZX+uvm+cA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VEG+MInS5YLiPHqTk4PvEv6XRJdmlfN+p4f+JD7gmIm/zJ4lKs9zvNLf3tDd1WByy7BKtnHdEeQlLiMo6dX2sE1h0aNzzhaCh2EAtXCr6+b2yxvxdus19fp6Arn4lwLxai6KCc2mZgipC/hObGFZ6L3QTVd5jJETYC0EMh2CuSo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=anIAlXby; arc=none smtp.client-ip=209.85.218.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="anIAlXby" Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-ac25d2b2354so817318766b.1 for ; Wed, 12 Mar 2025 00:39:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741765146; x=1742369946; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=d7890Dj6SEHW6oTKLK8hnc7mlH58BUSTgNL5LwMLSow=; b=anIAlXbyNHD7SjVS9gOAgYiBmb7GE+TI1nfBQDGebj6KH1wtFbax2zHD/XQTCPgqBc BpkXUJb4/XyRUauf3As/VStu8yIYbLLowxiwix6FKcgg4BYB0ZB5HVdVxDtv995kF3xB kPmH/B0hkkkISwwNC8XH+gdYnxVIoNHa3Wd9ric/1XU6C5KJTSFFG3BoaThZJaHBHWm5 RLzvqtwH3FK9keWfbsIaq0WZJzzlfrlX8+RCJwtdaqB3GpN11HwKt05NOgnOSXK9qQ5P pwzr6fZhiuFo68YBYXrF4PtAEsmSgh1K7gI5JEbTfYIDQzS6jfpjWJP6A46t1d+gaNdO FMqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741765146; x=1742369946; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=d7890Dj6SEHW6oTKLK8hnc7mlH58BUSTgNL5LwMLSow=; b=MZ8kjJHdrxF/O2rSbqQm4gAvZqCbbMHrN3WmbxEi7dAOejaQVDessDK8XqeQlNjJrn lort34o74hkfFIBa5pn2vwxjRpeGTwe0xVmnIlya1l1JgshufL+r1Rh11fRhtC6iMM4R IWCFnJOtyhhLMbp4U7dmp34sSDpau2DGHDu00qpxSuyxveBXd4cBvvmaTycD0f2T88Gp XHc3QPOxf7+5zTNfiIiOEOQy1e71Ep2TukuCeULgJpMD7hSdcwGR66D97/QhMtrCZfVn RnUF2T6peZQBcNQ+IzgXQjkHJ4hCUHSwgnxfdEMhm1K79vUZk2tjUUAS3B2UerUDKqYH 3Nfw== X-Forwarded-Encrypted: i=1; AJvYcCWamONVoM21QdrQFXrXFUk1nImmWHIxB0Gxc7cNIo2Dfuwu8fSR8sO3AxsMVhvCh5Fm1Y4yDhJrQTJexII1@vger.kernel.org X-Gm-Message-State: AOJu0YzNBxpdf/rXd2TJrE/gBgyb8oryeSAccxmTYYLtQFRKS9Y3iJxH THI/WILGsXIiZOJ4qHWgnd/onIkSnqFf+cNgmWctHjd4tISjVNQKqtqwZRt1 X-Gm-Gg: ASbGnctAMa2S7KHbdPQqMfTfX3MBWtaA7cUG5wtrfFYiThpbQyZ2KMJWYiGdTk5ESdA 13eURG1W1tABQnb33qGsr4pORkNtshzq7xB08C2Sh8iNfopkr8LMe3YpEqqXPQGaeoUOAsMOUp0 RNzC1RR/R9NUdUEcgFJBJdfP3Dx4AYACK2vhN20i17nChDLp0PVxcXq81vElVGUUgSP7mISmn+0 Md2Ero4jzrOUsix2M1nF1ELEHRLJJ8aWseEYBUuvi9aaxKlr1fYValYnCAyXLL6L1jIwkiH5jk1 +awh2/PO5LsQ2T94uL65vDYmV61336hHoLtACTVFBWayiJceuiM7/m3f2aozZcwt7vcXTLPadUG rYHgnKPixHE6lSA8cAL8WF7gPyUe9YCf9AK0OK8cffXXaSWuDW7sS X-Google-Smtp-Source: AGHT+IHdqC7suRRIt7P3EK7j/TKHrFsdOONf20iVncLxc2zLzjV52BDsdm8685ygJo/rxh4xGgRcHQ== X-Received: by 2002:a17:906:f59c:b0:abf:63fa:43d4 with SMTP id a640c23a62f3a-ac252fa2069mr2680043666b.44.1741765145974; Wed, 12 Mar 2025 00:39:05 -0700 (PDT) Received: from amir-ThinkPad-T480.arnhem.chello.nl (92-109-99-123.cable.dynamic.v4.ziggo.nl. [92.109.99.123]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac282c69e89sm624740666b.167.2025.03.12.00.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 00:39:05 -0700 (PDT) From: Amir Goldstein To: Jan Kara Cc: Josef Bacik , Christian Brauner , linux-fsdevel@vger.kernel.org Subject: [PATCH v3 6/6] Revert "fanotify: disable readahead if we have pre-content watches" Date: Wed, 12 Mar 2025 08:38:52 +0100 Message-Id: <20250312073852.2123409-7-amir73il@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250312073852.2123409-1-amir73il@gmail.com> References: <20250312073852.2123409-1-amir73il@gmail.com> Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 This reverts commit fac84846a28c0950d4433118b3dffd44306df62d. --- mm/filemap.c | 12 ------------ mm/readahead.c | 14 -------------- 2 files changed, 26 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index ff5fcdd961364..6d616bb9001eb 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3197,14 +3197,6 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) unsigned long vm_flags = vmf->vma->vm_flags; unsigned int mmap_miss; - /* - * If we have pre-content watches we need to disable readahead to make - * sure that we don't populate our mapping with 0 filled pages that we - * never emitted an event for. - */ - if (unlikely(FMODE_FSNOTIFY_HSM(file->f_mode))) - return fpin; - #ifdef CONFIG_TRANSPARENT_HUGEPAGE /* Use the readahead code, even if readahead is disabled */ if ((vm_flags & VM_HUGEPAGE) && HPAGE_PMD_ORDER <= MAX_PAGECACHE_ORDER) { @@ -3273,10 +3265,6 @@ static struct file *do_async_mmap_readahead(struct vm_fault *vmf, struct file *fpin = NULL; unsigned int mmap_miss; - /* See comment in do_sync_mmap_readahead. */ - if (unlikely(FMODE_FSNOTIFY_HSM(file->f_mode))) - return fpin; - /* If we don't want any read-ahead, don't bother */ if (vmf->vma->vm_flags & VM_RAND_READ || !ra->ra_pages) return fpin; diff --git a/mm/readahead.c b/mm/readahead.c index 220155a5c9646..6a4e96b69702b 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -128,7 +128,6 @@ #include #include #include -#include #include "internal.h" @@ -558,15 +557,6 @@ void page_cache_sync_ra(struct readahead_control *ractl, unsigned long max_pages, contig_count; pgoff_t prev_index, miss; - /* - * If we have pre-content watches we need to disable readahead to make - * sure that we don't find 0 filled pages in cache that we never emitted - * events for. Filesystems supporting HSM must make sure to not call - * this function with ractl->file unset for files handled by HSM. - */ - if (ractl->file && unlikely(FMODE_FSNOTIFY_HSM(ractl->file->f_mode))) - return; - /* * Even if readahead is disabled, issue this request as readahead * as we'll need it to satisfy the requested range. The forced @@ -645,10 +635,6 @@ void page_cache_async_ra(struct readahead_control *ractl, if (!ra->ra_pages) return; - /* See the comment in page_cache_sync_ra. */ - if (ractl->file && unlikely(FMODE_FSNOTIFY_HSM(ractl->file->f_mode))) - return; - /* * Same bit is used for PG_readahead and PG_reclaim. */