GFS2: Pull request (merge window)

From: Bob Peterson
Date: Tue Jan 12 2016 - 13:34:37 EST


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

Bob Peterson

The following changes since commit 42d4ebb42a17754d2e8344dc1aa486119671d0eb:

Merge git:// (2015-11-10 10:11:12 -0800)

are available in the git repository at:

git:// tags/gfs2-merge-window

for you to fetch changes up to a93a99838248bdab49db2eaac00236847670bc7f:

gfs2: fix flock panic issue (2015-12-22 08:06:08 -0600)

GFS2: merge window

Here is a list of patches we've accumulated for GFS2 for the current upstream
merge window. Last window's set was short, but I warned that this one would
be bigger, and so it is. We've got 19 patches:

- A patch from Abhi Das to propagate the GFS2_DIF_SYSTEM bit so that newly
added journals don't get flagged, deleted, and recreated by fsck.gfs2.
- Two patches from Andreas Gruenbacher to improve GFS2 performance where
extended attributes are involved.
- A patch from Andy Price to fix a suspicious rcu dereference error.
- Two patches from Ben Marzinski that rework how GFS2's NFS cookies are
managed. This fixes readdir problems with nfs-over-gfs2.
- A patch from Ben Marzinski that fixes a race in unmounting GFS2.
- A set of four patches from me to move the resource group reservations
inside the gfs2 inode to improve performance and fix a bug whereby
get_write_access improperly prevented some operations like chown.
- A patch from me to spinlock-protect the setting of system statfs file data.
This was causing small discrepancies between df and du.
- A patch from me to reintroduce a timeout while clearing glocks which was
accidentally dropped some time ago.
- A patch from me to wait for iopen glock dequeues in order to improve
deleting of files that were unlinked from a different cluster node.
- A patch from me to ensure metadata address spaces get truncated when an
inode is evicted.
- A patch from me to fix a bug in which a memory leak could occur in some
error cases when inodes were trying to be created.
- A patch to consistently use iopen glocks to transition from the unlinked
state to the deleted state.
- A patch to fix a glock reference count error when inode creation fails.
- A patch from Junxiao Bi to fix an flock panic.
- A patch from Markus Elfring that removes an unnecessary if.

Abhi Das (1):
gfs2: Automatically set GFS2_DIF_SYSTEM flag on system files

Andreas Gruenbacher (2):
gfs2: Extended attribute readahead
gfs2: Extended attribute readahead optimization

Andrew Price (1):
GFS2: Use rht_for_each_entry_rcu in glock_hash_walk

Benjamin Marzinski (3):
gfs2: keep offset when splitting dir leaf blocks
gfs2: change gfs2 readdir cookie
gfs2: clear journal live bit in gfs2_log_flush

Bob Peterson (10):
GFS2: Extract quota data from reservations structure (revert 5407e24)
GFS2: Make rgrp reservations part of the gfs2_inode structure
GFS2: Reduce size of incore inode
GFS2: Update master statfs buffer with sd_statfs_spin locked
GFS2: Reintroduce a timeout in function gfs2_gl_hash_clear
GFS2: Wait for iopen glock dequeues
GFS2: Truncate address space mapping when deleting an inode
GFS2: Release iopen glock in gfs2_create_inode error cases
GFS2: Always use iopen glock for gl_deletes
GFS2: Don't do glock put on when inode creation fails

Junxiao Bi (1):
gfs2: fix flock panic issue

Markus Elfring (1):
GFS2: Delete an unnecessary check before the function call "iput"

fs/gfs2/aops.c | 2 +-
fs/gfs2/bmap.c | 13 +--
fs/gfs2/dir.c | 175 ++++++++++++++++++++++++++++++---------
fs/gfs2/file.c | 34 ++++----
fs/gfs2/glock.c | 18 ++--
fs/gfs2/glock.h | 26 +++---
fs/gfs2/incore.h | 23 +++--
fs/gfs2/inode.c | 48 +++++------
fs/gfs2/log.c | 3 +
fs/gfs2/main.c | 16 ++--
fs/gfs2/meta_io.c | 82 ++++++++++++++++--
fs/gfs2/meta_io.h | 2 +-
fs/gfs2/ops_fstype.c | 6 +-
fs/gfs2/quota.c | 117 +++++++++++++++++---------
fs/gfs2/quota.h | 2 +
fs/gfs2/rgrp.c | 57 +++++--------
fs/gfs2/rgrp.h | 6 +-
fs/gfs2/super.c | 43 ++++++----
fs/gfs2/util.c | 2 +-
fs/gfs2/util.h | 2 +-
fs/gfs2/xattr.c | 10 +--
include/uapi/linux/gfs2_ondisk.h | 9 +-
22 files changed, 452 insertions(+), 244 deletions(-)