Re: [Cluster-devel] [GFS2 PATCH] gfs2: Panic when an io error occurs writing

2018-12-18 Thread Mark Syms
Hi Bob, I agree, it's a hard problem. I'm just trying to understand that we've done the absolute best we can and that if this condition is hit then the best solution really is to just kill the node. I guess it's also a question of how common this actually ends up being. We have now got

[Cluster-devel] [GFS2 PATCH] gfs2: take jdata unstuff into account in do_grow

2018-12-18 Thread Bob Peterson
Hi, Before this patch, function do_grow would not reserve enough journal blocks in the transaction to unstuff jdata files while growing them. This patch adds the logic to add one more block if the file to grow is jdata. Signed-off-by: Bob Peterson --- fs/gfs2/bmap.c | 1 + 1 file changed, 1

Re: [Cluster-devel] [GFS2 PATCH] gfs2: Panic when an io error occurs writing

2018-12-18 Thread Bob Peterson
- Original Message - > Hi Bob, > > I agree, it's a hard problem. I'm just trying to understand that we've done > the absolute best we can and that if this condition is hit then the best > solution really is to just kill the node. I guess it's also a question of > how common this actually

Re: [Cluster-devel] [GFS2 PATCH] gfs2: take jdata unstuff into account in do_grow

2018-12-18 Thread Andreas Gruenbacher
On Tue, 18 Dec 2018 at 15:32, Bob Peterson wrote: > Hi, > > Before this patch, function do_grow would not reserve enough journal > blocks in the transaction to unstuff jdata files while growing them. > This patch adds the logic to add one more block if the file to grow > is jdata. > >

Re: [Cluster-devel] [GFS2 PATCH] gfs2: Panic when an io error occurs writing

2018-12-18 Thread Mark Syms
Thanks Bob, We believe we have seen these issues from time to time in our automated testing but I suspect that they're indicating a configuration problem with the backing storage. For flexibility a proportion of our purely functional testing will use storage provided by a VM running a software

[Cluster-devel] [GFS2 PATCH v2] gfs2: take jdata unstuff into account in do_grow

2018-12-18 Thread Bob Peterson
Hi, The previously posted patch works, but I decided it was better to add an additional check for "unstuff" so it only requests the additional block for the unstuffed jdata case where it's really needed. --- Before this patch, function do_grow would not reserve enough journal blocks in the

[Cluster-devel] [PATCH 01/11] gfs2: Clean up gfs2_is_{ordered, writeback}

2018-12-18 Thread Bob Peterson
From: Andreas Gruenbacher The gfs2_is_ordered and gfs2_is_writeback checks are weird in that they implicitly check for !gfs2_is_jdata. This makes understanding how to use those functions correctly a challenge. Clean this up by making gfs2_is_ordered and gfs2_is_writeback take a super block

[Cluster-devel] [PATCH 03/11] gfs2: add more timing info to journal recovery process

2018-12-18 Thread Bob Peterson
From: Abhi Das Tells you how many milliseconds map_journal_extents and find_jhead take. Signed-off-by: Abhi Das Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher --- fs/gfs2/bmap.c | 8 ++-- fs/gfs2/recovery.c | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-)

[Cluster-devel] [PATCH 04/11] gfs2: changes to gfs2_log_XXX_bio

2018-12-18 Thread Bob Peterson
From: Abhi Das Change gfs2_log_XXX_bio family of functions so they can be used with different bios, not just sdp->sd_log_bio. This patch also contains some clean up suggested by Andreas. Signed-off-by: Abhi Das Signed-off-by: Andreas Gruenbacher Signed-off-by: Bob Peterson ---

[Cluster-devel] [PATCH 07/11] gfs2: Remove vestigial bd_ops

2018-12-18 Thread Bob Peterson
Field bd_ops was set but never used, so I removed it, and all code supporting it. Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse Signed-off-by: Andreas Gruenbacher --- fs/gfs2/incore.h | 1 - fs/gfs2/log.c| 1 - fs/gfs2/trans.c | 8 +++- 3 files changed, 3 insertions(+), 7

[Cluster-devel] [PATCH 05/11] gfs2: add a helper function to get_log_header that can be used elsewhere

2018-12-18 Thread Bob Peterson
From: Abhi Das Move and re-order the error checks and hash/crc computations into another function __get_log_header() so it can be used in scenarios where buffer_heads are not being used for the log header. Signed-off-by: Abhi Das Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher

[Cluster-devel] [PATCH 10/11] gfs2: Dump nrpages for inodes and their glocks

2018-12-18 Thread Bob Peterson
This patch is based on an idea from Steve Whitehouse. The idea is to dump the number of pages for inodes in the glock dumps. The additional locking required me to drop const from quite a few places. Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher --- fs/gfs2/glock.c | 2 +-

[Cluster-devel] [PATCH 00/11] GFS2: Pre-pull patch posting (merge window)

2018-12-18 Thread Bob Peterson
Hi, We've got 11 patches for this merge window: - Enhancements and performance improvements to journal replay (Abhi Das) - Cleanup of gfs2_is_ordered and gfs2_is_writeback (Andreas Gruenbacher) - Fix a potential double-free in inode creation (Andreas Gruenbacher) - Fix the bitmap search

[Cluster-devel] [PATCH 08/11] gfs2: Get rid of potential double-freeing in gfs2_create_inode

2018-12-18 Thread Bob Peterson
From: Andreas Gruenbacher In gfs2_create_inode, after setting and releasing the acl / default_acl, the acl / default_acl pointers are not set to NULL as they should be. In that state, when the function reaches label fail_free_acls, gfs2_create_inode will try to release the same acls again. Fix

[Cluster-devel] [PATCH 11/11] gfs2: take jdata unstuff into account in do_grow

2018-12-18 Thread Bob Peterson
Before this patch, function do_grow would not reserve enough journal blocks in the transaction to unstuff jdata files while growing them. This patch adds the logic to add one more block if the file to grow is jdata. Signed-off-by: Bob Peterson Reviewed-by: Andreas Gruenbacher ---

[Cluster-devel] [PATCH 09/11] gfs2: Fix loop in gfs2_rbm_find

2018-12-18 Thread Bob Peterson
From: Andreas Gruenbacher Fix the resource group wrap-around logic in gfs2_rbm_find that commit e579ed4f44 broke. The bug can lead to unnecessary repeated scanning of the same bitmaps; there is a risk that future changes will turn this into an endless loop. Fixes: e579ed4f44 ("GFS2: Introduce

[Cluster-devel] [PATCH 06/11] gfs2: read journal in large chunks to locate the head

2018-12-18 Thread Bob Peterson
From: Abhi Das Use bio(s) to read in the journal sequentially in large chunks and locate the head of the journal. This version addresses the issues Christoph pointed out w.r.t error handling and using deprecated API. Signed-off-by: Abhi Das Signed-off-by: Andreas Gruenbacher Signed-off-by:

[Cluster-devel] [PATCH 02/11] gfs2: Fix the gfs2_invalidatepage description

2018-12-18 Thread Bob Peterson
From: Andreas Gruenbacher The comment incorrectly states that the function always returns 0. Signed-off-by: Andreas Gruenbacher --- fs/gfs2/aops.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c index d9d2a3470656..05dd78f4b2b3 100644