All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20220407011257.114287-9-sashal@kernel.org>

diff --git a/a/1.txt b/N1/1.txt
index 4293119..e7cc9e5 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,44 +1,6 @@
-From: Andreas Gruenbacher <agruenba@redhat.com>
-
-[ Upstream commit 52f3f033a5dbd023307520af1ff551cadfd7f037 ]
-
-During lockless buffered reads, filemap_read() holds page cache page
-references while trying to copy data to the user-space buffer.  The
-calling process isn't holding the inode glock, but the page references
-it holds prevent those pages from being removed from the page cache, and
-that prevents the underlying inode glock from being moved to another
-node.  Thus, we can end up in the same kinds of distributed deadlock
-situations as with normal (non-lockless) buffered reads.
-
-Fix that by disabling page faults during lockless reads as well.
-
-Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/gfs2/file.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
-index f6d3b3e13d72..c39c102f5005 100644
---- a/fs/gfs2/file.c
-+++ b/fs/gfs2/file.c
-@@ -850,14 +850,16 @@ static ssize_t gfs2_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
- 			return ret;
- 		iocb->ki_flags &= ~IOCB_DIRECT;
- 	}
-+	pagefault_disable();
- 	iocb->ki_flags |= IOCB_NOIO;
- 	ret = generic_file_read_iter(iocb, to);
- 	iocb->ki_flags &= ~IOCB_NOIO;
-+	pagefault_enable();
- 	if (ret >= 0) {
- 		if (!iov_iter_count(to))
- 			return ret;
- 		written = ret;
--	} else {
-+	} else if (ret != -EFAULT) {
- 		if (ret != -EAGAIN)
- 			return ret;
- 		if (iocb->ki_flags & IOCB_NOWAIT)
--- 
-2.35.1
\ No newline at end of file
+A non-text attachment was scrubbed...
+Name: not available
+Type: application/octet-stream
+Size: 1476 bytes
+Desc: not available
+URL: <http://listman.redhat.com/archives/cluster-devel/attachments/20220406/dbf33f90/attachment.obj>
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index e34630c..1339afe 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -5,20 +5,13 @@
   "From\0Sasha Levin <sashal\@kernel.org>\0"
 ]
 [
-  "Subject\0[PATCH AUTOSEL 5.15 09/27] gfs2: Disable page faults during lockless buffered reads\0"
+  "Subject\0[Cluster-devel] [PATCH AUTOSEL 5.15 09/27] gfs2: Disable page faults during lockless buffered reads\0"
 ]
 [
   "Date\0Wed,  6 Apr 2022 21:12:39 -0400\0"
 ]
 [
-  "To\0linux-kernel\@vger.kernel.org",
-  " stable\@vger.kernel.org\0"
-]
-[
-  "Cc\0Andreas Gruenbacher <agruenba\@redhat.com>",
-  " Sasha Levin <sashal\@kernel.org>",
-  " rpeterso\@redhat.com",
-  " cluster-devel\@redhat.com\0"
+  "To\0cluster-devel.redhat.com\0"
 ]
 [
   "\0000:1\0"
@@ -27,50 +20,12 @@
   "b\0"
 ]
 [
-  "From: Andreas Gruenbacher <agruenba\@redhat.com>\n",
-  "\n",
-  "[ Upstream commit 52f3f033a5dbd023307520af1ff551cadfd7f037 ]\n",
-  "\n",
-  "During lockless buffered reads, filemap_read() holds page cache page\n",
-  "references while trying to copy data to the user-space buffer.  The\n",
-  "calling process isn't holding the inode glock, but the page references\n",
-  "it holds prevent those pages from being removed from the page cache, and\n",
-  "that prevents the underlying inode glock from being moved to another\n",
-  "node.  Thus, we can end up in the same kinds of distributed deadlock\n",
-  "situations as with normal (non-lockless) buffered reads.\n",
-  "\n",
-  "Fix that by disabling page faults during lockless reads as well.\n",
-  "\n",
-  "Signed-off-by: Andreas Gruenbacher <agruenba\@redhat.com>\n",
-  "Signed-off-by: Sasha Levin <sashal\@kernel.org>\n",
-  "---\n",
-  " fs/gfs2/file.c | 4 +++-\n",
-  " 1 file changed, 3 insertions(+), 1 deletion(-)\n",
-  "\n",
-  "diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c\n",
-  "index f6d3b3e13d72..c39c102f5005 100644\n",
-  "--- a/fs/gfs2/file.c\n",
-  "+++ b/fs/gfs2/file.c\n",
-  "\@\@ -850,14 +850,16 \@\@ static ssize_t gfs2_file_read_iter(struct kiocb *iocb, struct iov_iter *to)\n",
-  " \t\t\treturn ret;\n",
-  " \t\tiocb->ki_flags &= ~IOCB_DIRECT;\n",
-  " \t}\n",
-  "+\tpagefault_disable();\n",
-  " \tiocb->ki_flags |= IOCB_NOIO;\n",
-  " \tret = generic_file_read_iter(iocb, to);\n",
-  " \tiocb->ki_flags &= ~IOCB_NOIO;\n",
-  "+\tpagefault_enable();\n",
-  " \tif (ret >= 0) {\n",
-  " \t\tif (!iov_iter_count(to))\n",
-  " \t\t\treturn ret;\n",
-  " \t\twritten = ret;\n",
-  "-\t} else {\n",
-  "+\t} else if (ret != -EFAULT) {\n",
-  " \t\tif (ret != -EAGAIN)\n",
-  " \t\t\treturn ret;\n",
-  " \t\tif (iocb->ki_flags & IOCB_NOWAIT)\n",
-  "-- \n",
-  "2.35.1"
+  "A non-text attachment was scrubbed...\n",
+  "Name: not available\n",
+  "Type: application/octet-stream\n",
+  "Size: 1476 bytes\n",
+  "Desc: not available\n",
+  "URL: <http://listman.redhat.com/archives/cluster-devel/attachments/20220406/dbf33f90/attachment.obj>"
 ]
 
-9c2beadcfb8674584ec168687f26554ffd89aeddbe74f62889123e7d9888a604
+46449da239230656b3520c007d4b4098b6768c0f7479df7b92888067558d4598

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.