Re: [Cluster-devel] [PATCH v2 07/14] buffer: Convert block_page_mkwrite() to use a folio

2023-06-06 Thread Andreas Grünbacher
Am Mi., 7. Juni 2023 um 00:48 Uhr schrieb Matthew Wilcox (Oracle) : > If any page in a folio is dirtied, dirty the entire folio. Removes a > number of hidden calls to compound_head() and references to page->mapping > and page->index. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > fs/buffer.c

Re: [Cluster-devel] [PATCH v2 06/14] buffer: Make block_write_full_page() handle large folios correctly

2023-06-06 Thread Andreas Grünbacher
Am Mi., 7. Juni 2023 um 00:41 Uhr schrieb Matthew Wilcox (Oracle) : > Keep the interface as struct page, but work entirely on the folio > internally. Removes several PAGE_SIZE assumptions and removes > some references to page->index and page->mapping. > > Signed-off-by: Matthew Wilcox (Oracle) >

[Cluster-devel] [PATCH v2 06/14] buffer: Make block_write_full_page() handle large folios correctly

2023-06-06 Thread Matthew Wilcox (Oracle)
Keep the interface as struct page, but work entirely on the folio internally. Removes several PAGE_SIZE assumptions and removes some references to page->index and page->mapping. Signed-off-by: Matthew Wilcox (Oracle) Tested-by: Bob Peterson Reviewed-by: Bob Peterson --- fs/buffer.c | 22 +

[Cluster-devel] [PATCH v2 08/14] buffer: Convert __block_commit_write() to take a folio

2023-06-06 Thread Matthew Wilcox (Oracle)
This removes a hidden call to compound_head() inside __block_commit_write() and moves it to those callers which are still page based. Also make block_write_end() safe for large folios. Signed-off-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 38 +++--- 1 file cha

[Cluster-devel] [PATCH v2 05/14] gfs2: Support ludicrously large folios in gfs2_trans_add_databufs()

2023-06-06 Thread Matthew Wilcox (Oracle)
We may someday support folios larger than 4GB, so use a size_t for the byte count within a folio to prevent unpleasant truncations. Signed-off-by: Matthew Wilcox (Oracle) Tested-by: Bob Peterson Reviewed-by: Bob Peterson --- fs/gfs2/aops.c | 6 +++--- fs/gfs2/aops.h | 2 +- 2 files changed, 4

[Cluster-devel] [PATCH v2 04/14] buffer: Convert __block_write_full_page() to __block_write_full_folio()

2023-06-06 Thread Matthew Wilcox (Oracle)
Remove nine hidden calls to compound_head() by using a folio instead of a page. Signed-off-by: Matthew Wilcox (Oracle) Tested-by: Bob Peterson Reviewed-by: Bob Peterson --- fs/buffer.c | 53 +++-- fs/gfs2/aops.c | 5 ++-- fs/ntfs/ao

[Cluster-devel] [PATCH v2 02/14] gfs2: Pass a folio to __gfs2_jdata_write_folio()

2023-06-06 Thread Matthew Wilcox (Oracle)
Remove a couple of folio->page conversions in the callers, and two calls to compound_head() in the function itself. Rename it from __gfs2_jdata_writepage() to __gfs2_jdata_write_folio(). Signed-off-by: Matthew Wilcox (Oracle) Tested-by: Bob Peterson Reviewed-by: Bob Peterson --- fs/gfs2/aops.

[Cluster-devel] [PATCH v2 09/14] buffer; Convert page_zero_new_buffers() to folio_zero_new_buffers()

2023-06-06 Thread Matthew Wilcox (Oracle)
Most of the callers already have a folio; convert reiserfs_write_end() to have a folio. Removes a couple of hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 27 ++- fs/ext4/inode.c | 4 ++-- fs/reiserf

[Cluster-devel] [PATCH v2 07/14] buffer: Convert block_page_mkwrite() to use a folio

2023-06-06 Thread Matthew Wilcox (Oracle)
If any page in a folio is dirtied, dirty the entire folio. Removes a number of hidden calls to compound_head() and references to page->mapping and page->index. Signed-off-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 27 +-- 1 file changed, 13 insertions(+), 14 deletions

[Cluster-devel] [PATCH v2 03/14] gfs2: Convert gfs2_write_jdata_page() to gfs2_write_jdata_folio()

2023-06-06 Thread Matthew Wilcox (Oracle)
Add support for large folios and remove some accesses to page->mapping and page->index. Signed-off-by: Matthew Wilcox (Oracle) Tested-by: Bob Peterson Reviewed-by: Bob Peterson --- fs/gfs2/aops.c | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/f

[Cluster-devel] [PATCH v2 01/14] gfs2: Use a folio inside gfs2_jdata_writepage()

2023-06-06 Thread Matthew Wilcox (Oracle)
Replace a few implicit calls to compound_head() with one explicit one. Signed-off-by: Matthew Wilcox (Oracle) Tested-by: Bob Peterson Reviewed-by: Bob Peterson --- fs/gfs2/aops.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c index

[Cluster-devel] [PATCH v2 13/14] buffer: Use a folio in __find_get_block_slow()

2023-06-06 Thread Matthew Wilcox (Oracle)
Saves a call to compound_head() and may be needed to support block size > PAGE_SIZE. Signed-off-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index c81b8b20ad64..9f761a201e32 100644 --- a/fs/

[Cluster-devel] [PATCH v2 10/14] buffer: Convert grow_dev_page() to use a folio

2023-06-06 Thread Matthew Wilcox (Oracle)
Get a folio from the page cache instead of a page, then use the folio API throughout. Removes a few calls to compound_head() and may be needed to support block size > PAGE_SIZE. Signed-off-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 34 +++--- 1 file changed, 15 in

[Cluster-devel] [PATCH v2 11/14] buffer: Convert init_page_buffers() to folio_init_buffers()

2023-06-06 Thread Matthew Wilcox (Oracle)
Use the folio API and pass the folio from both callers. Saves a hidden call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 18 -- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index c4fc4b3b8aab..9b789f109a5

[Cluster-devel] [PATCH v2 12/14] buffer: Convert link_dev_buffers to take a folio

2023-06-06 Thread Matthew Wilcox (Oracle)
Its one caller already has a folio, so switch it to use the folio API. Removes a hidden call to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index 9b789f109a57..c81b8

[Cluster-devel] [PATCH v2 14/14] buffer: Convert block_truncate_page() to use a folio

2023-06-06 Thread Matthew Wilcox (Oracle)
Support large folios in block_truncate_page() and avoid three hidden calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 28 +++- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index 9f761a201e32..9

[Cluster-devel] [PATCH v2 00/14] gfs2/buffer folio changes for 6.5

2023-06-06 Thread Matthew Wilcox (Oracle)
This kind of started off as a gfs2 patch series, then became entwined with buffer heads once I realised that gfs2 was the only remaining caller of __block_write_full_page(). For those not in the gfs2 world, the big point of this series is that block_write_full_page() should now handle large folios

Re: [Cluster-devel] [PATCH dlm/next] fs: dlm: fix nfs async lock callback handling

2023-06-06 Thread Alexander Aring
Hi, On Tue, Jun 6, 2023 at 5:56 PM Alexander Aring wrote: > > This patch is fixing the current the callback handling if it's a nfs > async lock request signaled if fl_lmops is set. > > When using `stress-ng --fcntl 32` on the kernel log there are several > messages like: > > [11185.123533] dlm: d

[Cluster-devel] [PATCH dlm/next] fs: dlm: fix nfs async lock callback handling

2023-06-06 Thread Alexander Aring
This patch is fixing the current the callback handling if it's a nfs async lock request signaled if fl_lmops is set. When using `stress-ng --fcntl 32` on the kernel log there are several messages like: [11185.123533] dlm: dlm_plock_callback: vfs lock error 5d5127 file 2dd10f4d fl 000

Re: [Cluster-devel] [GIT PULL] gfs2 fix

2023-06-06 Thread Andreas Gruenbacher
On Tue, Jun 6, 2023 at 2:55 PM Linus Torvalds wrote: > On Tue, Jun 6, 2023 at 5:48 AM Andreas Gruenbacher > wrote: > > > > - Don't get stuck writing page onto itself under direct I/O. > > Btw, is there a test for this DIO case? The previous test case I wrote for these kinds of page faults is:

Re: [Cluster-devel] [GIT PULL] gfs2 fix

2023-06-06 Thread pr-tracker-bot
The pull request you sent on Tue, 6 Jun 2023 14:48:00 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git > tags/gfs2-v6.4-rc4-fix has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/0bdd0f0bf17c5aac16f348ee4b1ebf23d1ec1649 Thank you! -- Deet-doo

Re: [Cluster-devel] [GIT PULL] gfs2 fix

2023-06-06 Thread Linus Torvalds
On Tue, Jun 6, 2023 at 5:48 AM Andreas Gruenbacher wrote: > > - Don't get stuck writing page onto itself under direct I/O. Btw, is there a test for this DIO case? We've had the deadlock issue on t page lock (or for inode locks or whatever) for normal IO when faulting in the same page that is wri

[Cluster-devel] [GIT PULL] gfs2 fix

2023-06-06 Thread Andreas Gruenbacher
Hi Linus, please consider pulling the following fix. Thanks, Andreas The following changes since commit 48b1320a674e1ff5de2fad8606bee38f724594dc: Merge tag 'for-6.4-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux (2023-05-30 17:23:50 -0400) are available in the Git re

[Cluster-devel] [RFC PATCH] fsck.gfs2: Fail on LVM PV detection

2023-06-06 Thread Andrew Price
If fsck.gfs2 is run against an LVM PV it will try its best to repair it as a gfs2 fs. This is unlikely the best course of action as it's more likely that the user executed fsck.gfs2 against the PV after stopping the cluster (including the LVM activation resources). In this situation other fscks tr