cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] [PATCH 00/10] GFS2: Pre-pull patch posting (merge window)
@ 2016-07-22 17:04 Bob Peterson
  2016-07-22 17:04 ` [Cluster-devel] [PATCH 01/10] GFS2: don't set rgrp gl_object until it's inserted into rgrp tree Bob Peterson
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: Bob Peterson @ 2016-07-22 17:04 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Hi,

Since I'll be on vacation / holiday all next week, I'm doing the merge
window processing for GFS2 early this time, before the merge window has
been officially opened: I'd rather post the patches a little early than
be late and have Linus be unhappy with me as a maintainer.

We've got ten patches this time, half of which are related to a plethora
of nasty outcomes when inodes are transitioned from the unlinked state
to the free state. Small file systems are particularly vulnerable to these
problems, and it can manifest as mainly hangs, but also file system
corruption. The patches have been tested for literally many weeks, with a
very gruelling test, so I have a high level of confidence.

- Andreas Gruenbacher wrote a series of 5 patches for various lockups
  during the transition of inodes from unlinked to free. The main patch
  is titled "Fix gfs2_lookup_by_inum lock inversion" and the other 4 are
  support and cleanup patches related to that.
- Ben Marzinski contributed 2 patches with regard to a recreatable
  problem when gfs2 tries to write a page to a file that is being
  truncated, resulting in a BUG() in gfs2_remove_from_journal.
  Note that Ben had to export vfs function __block_write_full_page to get
  this to work properly. It's been posted a long time and he talked to
  various VFS people about it, and nobody seemed to mind.
- I contributed 3 patches. (1) The first one fixes a memory corruptor:
  a race in which one process can overwrite the gl_object pointer set by
  another process, causing kernel panic and other symptoms. (2) The second
  patch fixes another race that resulted in a false-positive BUG_ON. This
  occurred when resource group reservations were freed by one process
  while another process was trying to grab a new reservation in the same
  resource group. (3) The third patch fixes a problem with doing journal
  replay when the journals are not all the same size.

I apologize that the last patch, "GFS2: Fix gfs2_replay_incr_blk for
multiple journal sizes" hasn't had much bake time. The patch is
straightforward, reviewed, and well tested with a reliable recreation
scenario. Since the bug prevents users from mounting their GFS2 file
system, I wanted to get it in as soon as possible. I felt that the need
outweighed other concerns.

Since I'll be on vacation next week, Andreas Gruenbacher can make changes
to the linux-gfs2 repo if need be.

Regards,

Bob Peterson
---
Andreas Gruenbacher (5):
  gfs2: Initialize iopen glock holder for new inodes
  gfs2: Fix gfs2_lookup_by_inum lock inversion
  gfs2: Get rid of gfs2_ilookup
  gfs2: Large-filesystem fix for 32-bit systems
  gfs2: Lock holder cleanup

Benjamin Marzinski (2):
  fs: export __block_write_full_page
  gfs2: writeout truncated pages

Bob Peterson (3):
  GFS2: don't set rgrp gl_object until it's inserted into rgrp tree
  GFS2: Check rs_free with rd_rsspin protection
  GFS2: Fix gfs2_replay_incr_blk for multiple journal sizes

 fs/buffer.c                 |   3 +-
 fs/gfs2/aops.c              |  49 +++++++++++------
 fs/gfs2/dentry.c            |   2 +-
 fs/gfs2/dir.c               |   3 +-
 fs/gfs2/export.c            |  11 ----
 fs/gfs2/file.c              |   2 +-
 fs/gfs2/glock.c             |  11 +---
 fs/gfs2/glock.h             |  10 ++++
 fs/gfs2/inode.c             | 128 +++++++++++++++++++++++++++++---------------
 fs/gfs2/inode.h             |   4 +-
 fs/gfs2/lops.c              |  11 ++--
 fs/gfs2/main.c              |   1 +
 fs/gfs2/ops_fstype.c        |   3 +-
 fs/gfs2/quota.c             |   2 +-
 fs/gfs2/recovery.c          |   6 +--
 fs/gfs2/recovery.h          |   4 +-
 fs/gfs2/rgrp.c              |  21 ++++----
 fs/gfs2/super.c             |  24 +++++----
 include/linux/buffer_head.h |   3 ++
 19 files changed, 182 insertions(+), 116 deletions(-)

-- 
2.5.5



^ permalink raw reply	[flat|nested] 12+ messages in thread
* [Cluster-devel] [PATCH 00/10] GFS2: Pre-pull patch posting (merge window)
@ 2017-05-05 19:56 Bob Peterson
  0 siblings, 0 replies; 12+ messages in thread
From: Bob Peterson @ 2017-05-05 19:56 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Hi,

We've got ten GFS2 patches for this merge window.

1. Andreas Gruenbacher wrote a patch to replace the deprecated
   call to rhashtable_walk_init with rhashtable_walk_enter.
2. Andreas also wrote a patch to eliminate redundant code in
   two of our debugfs sequence files.
3. Andreas also cleaned up the rhashtable key ugliness Linus
   pointed out during this cycle, following Linus's suggestions.
4. Andreas also wrote a patch to take advantage of his new
   function rhashtable_lookup_get_insert_fast. This makes glock
   lookup faster and more bullet-proof.
5. Andreas also wrote a patch to revert a patch in the evict
   path that caused occasional deadlocks, and is no longer
   needed.
6. Andrew Price wrote a patch to re-enable fallocate for the
   rindex system file to enable gfs2_grow to grow properly on
   secondary file system grow operations.
7. I wrote a patch to initialize an inode number field to make
   certain kernel trace points more understandable.
8. I also wrote a patch that makes GFS2 file system "withdraw"
   work more like it should by ignoring operations after a
   withdraw that would formerly cause a BUG() and kernel panic.
9. I also reworked the entire truncate/delete algorithm,
   scrapping the old recursive algorithm in favor of a new
   non-recursive algorithm. This was done for performance:
   This way, GFS2 no longer needs to lock multiple resource
   groups while doing truncates and deletes of files that cross
   multiple resource group boundaries, allowing for better
   parallelism. It also solves a problem whereby deleting large
   files would request a large chunk of kernel memory, which
   resulted in a get_page_from_freelist warning.
10. Due to a regression found during testing, I added a new
    patch to correct "GFS2: Prevent BUG from occurring when
    normal Withdraws occur".

Regards,

Bob Peterson
---
Andreas Gruenbacher (5):
  gfs2: Replace rhashtable_walk_init with rhashtable_walk_enter
  gfs2: Deduplicate gfs2_{glocks,glstats}_open
  gfs2: Don't pack struct lm_lockname
  gfs2: Switch to rhashtable_lookup_get_insert_fast
  Revert "GFS2: Wait for iopen glock dequeues"

Andrew Price (1):
  gfs2: Re-enable fallocate for the rindex

Bob Peterson (4):
  GFS2: Prevent BUG from occurring when normal Withdraws occur
  GFS2: Temporarily zero i_no_addr when creating a dinode
  GFS2: Non-recursive delete
  GFS2: Allow glocks to be unlocked after withdraw



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2017-05-05 19:56 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-22 17:04 [Cluster-devel] [PATCH 00/10] GFS2: Pre-pull patch posting (merge window) Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 01/10] GFS2: don't set rgrp gl_object until it's inserted into rgrp tree Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 02/10] gfs2: Initialize iopen glock holder for new inodes Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 03/10] gfs2: Fix gfs2_lookup_by_inum lock inversion Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 04/10] gfs2: Get rid of gfs2_ilookup Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 05/10] gfs2: Large-filesystem fix for 32-bit systems Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 06/10] gfs2: Lock holder cleanup Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 07/10] fs: export __block_write_full_page Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 08/10] gfs2: writeout truncated pages Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 09/10] GFS2: Check rs_free with rd_rsspin protection Bob Peterson
2016-07-22 17:04 ` [Cluster-devel] [PATCH 10/10] GFS2: Fix gfs2_replay_incr_blk for multiple journal sizes Bob Peterson
  -- strict thread matches above, loose matches on Subject: below --
2017-05-05 19:56 [Cluster-devel] [PATCH 00/10] GFS2: Pre-pull patch posting (merge window) Bob Peterson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).