GFS2: Pull request (merge window)

From: Bob Peterson
Date: Wed Jul 05 2017 - 09:09:03 EST

Hi Linus,

Please consider pulling the following changes for the GFS2 file system.


Bob Peterson
The following changes since commit 3ef2bc099d1cce09e2844467e2ced98e1a44609d:

Merge tag 'devicetree-for-4.12' of git:// (2017-05-05 19:33:07 -0700)

are available in the git repository at:

git:// tags/gfs2-4.13.fixes

for you to fetch changes up to 29695254ec51506d97b2a90ac27baabb438c70dd:

GFS2: constify attribute_group structures. (2017-07-05 07:21:14 -0500)

We've got eight GFS2 patches for this merge window:

1. Andreas Gruenbacher has four patches related to cleaning up the GFS2
inode evict process. This is about half of his patches designed to
fix a long-standing GFS2 hang related to the inode shrinker.
(Shrinker calls gfs2 evict, evict calls DLM, DLM requires memory
and blocks on the shrinker.) These 4 patches have been well tested.
His second set of patches are still being tested, so I plan to hold
them until the next merge window, after we have more weeks of testing.
The first patch eliminates the flush_delayed_work, which can block.
2. Andreas's second patch protects setting of gl_object for rgrps with
a spin_lock to prevent proven races.
3. His third patch introduces a centralized mechanism for queueing glock
work with better reference counting, to prevent more races.
4. His fourth patch retains a reference to inode glocks when an error
occurs while creating an inode. This keeps the subsequent evict from
needing to reacquire the glock, which might call into DLM and block
in low memory conditions.
5. Arvind Yadav has a patch to add const to attribute_group structures.
6. I have a patch to detect directory entry inconsistencies and withdraw
the file system if any are found. Better that than silent corruption.
7. I have a patch to remove a vestigial variable from glock structures,
saving some slab space.
8. I have another patch to remove a vestigial variable from the GFS2
in-core superblock structure.

Andreas Gruenbacher (4):
gfs2: Get rid of flush_delayed_work in gfs2_evict_inode
gfs2: Protect gl->gl_object by spin lock
gfs2: Clean up glock work enqueuing
gfs2: gfs2_create_inode: Keep glock across iput

Arvind Yadav (1):
GFS2: constify attribute_group structures.

Bob Peterson (3):
GFS2: Withdraw when directory entry inconsistencies are detected
GFS2: Remove gl_list from glock structure
GFS2: Eliminate vestigial sd_log_flush_wrapped

fs/gfs2/bmap.c | 2 +-
fs/gfs2/dir.c | 7 ++--
fs/gfs2/glock.c | 124 +++++++++++++++++++++++++++++++++----------------------
fs/gfs2/glock.h | 7 ++++
fs/gfs2/glops.c | 56 ++++++++++++++++++++-----
fs/gfs2/incore.h | 5 ++-
fs/gfs2/inode.c | 19 +++++----
fs/gfs2/log.c | 3 --
fs/gfs2/lops.c | 6 +--
fs/gfs2/main.c | 1 -
fs/gfs2/rgrp.c | 6 +--
fs/gfs2/super.c | 33 +++++++++------
fs/gfs2/sys.c | 4 +-
fs/gfs2/xattr.c | 4 +-
14 files changed, 175 insertions(+), 102 deletions(-)