[Cluster-devel] [PATCH 01/29] GFS2: Plug on AIL flush

2014-04-01 Thread Steven Whitehouse
When we do a flush of the AIL list, we are writing out what is likely to be a lot of small I/Os, which are possibly in an order which is not ideal performance-wise. Since this is done by calling filemap_fdatatwrite for each individual inode's address space there is no overall plugging going on.

[Cluster-devel] [PATCH 27/29] GFS2: Fix return value in slot_get()

2014-04-01 Thread Steven Whitehouse
From: Abhi Das a...@redhat.com ENOSPC was being returned in slot_get inspite of successful execution of the function. This patch fixes this return code. Signed-off-by: Abhi Das a...@redhat.com Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c

[Cluster-devel] [PATCH 08/29] GFS2: Reduce struct gfs2_trans in size

2014-04-01 Thread Steven Whitehouse
A couple of int fields were being used as boolean values so we can make them bitfields of one bit, and put them in what might otherwise be a hole in the structure with 64 bit alignment. Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h index

[Cluster-devel] [PATCH 02/29] GFS2: Allocate block for xattr at inode alloc time, if required

2014-04-01 Thread Steven Whitehouse
This is another step towards improving the allocation of xattr blocks at inode allocation time. Here we take advantage of Christoph's recent work on ACLs to allocate a block for the xattrs early if we know that we will be adding ACLs to the inode later on. The advantage of that is that it is much

[Cluster-devel] [PATCH 21/29] GFS2: check NULL return value in gfs2_ok_to_move

2014-04-01 Thread Steven Whitehouse
From: Abhi Das a...@redhat.com gfs2_lookupi() can return NULL if the path to the root is broken by another rename/rmdir. In this case gfs2_ok_to_move() must check for this NULL pointer and return error. Resolves: rhbz#1060246 Signed-off-by: Abhi Das a...@redhat.com Signed-off-by: Steven

[Cluster-devel] [PATCH 18/29] GFS2: Use pr_level more consistently

2014-04-01 Thread Steven Whitehouse
From: Joe Perches j...@perches.com Add pr_fmt, remove embedded GFS2: prefixes. This now consistently emits lower case gfs2: for each message. Other miscellanea around these changes: o Add missing newlines o Coalesce formats o Realign arguments Signed-off-by: Joe Perches j...@perches.com

[Cluster-devel] [PATCH 15/29] GFS2: return -E2BIG if hit the maximum limits of ACLs

2014-04-01 Thread Steven Whitehouse
From: Jie Liu jeff@oracle.com Return -E2BIG rather than -EINVAL if hit the maximum size limits of ACLs, as the former errno is consistent with VFS xattr syscalls. This is pointed out by Dave Chinner in previous discussion thread: http://www.spinics.net/lists/linux-fsdevel/msg71125.html

[Cluster-devel] [PATCH 26/29] GFS2: inline function gfs2_set_mode

2014-04-01 Thread Steven Whitehouse
From: Bob Peterson rpete...@redhat.com Here is a revised patch based on Steve's feedback: This patch eliminates function gfs2_set_mode which was only called in one place, and always returned 0. Signed-off-by: Bob Peterson rpete...@redhat.com Signed-off-by: Steven Whitehouse swhit...@redhat.com

[Cluster-devel] [PATCH 10/29] GFS2: Move log buffer accounting to transaction

2014-04-01 Thread Steven Whitehouse
Now we have a master transaction into which other transactions are merged, the accounting can be done using this master transaction. We no longer require the superblock fields which were being used for this function. In addition, this allows for a clean up in calc_reserved() making it rather

[Cluster-devel] [PATCH 25/29] GFS2: Remove extraneous function gfs2_security_init

2014-04-01 Thread Steven Whitehouse
From: Bob Peterson rpete...@redhat.com This patch eliminates function gfs2_security_init in favor of just calling security_inode_init_security directly. Signed-off-by: Bob Peterson rpete...@redhat.com Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git a/fs/gfs2/inode.c

[Cluster-devel] [PATCH 20/29] GFS2: Convert gfs2_lm_withdraw to use fs_err

2014-04-01 Thread Steven Whitehouse
From: Joe Perches j...@perches.com vprintk use is not prefixed by a KERN_LEVEL, so emit these messages at KERN_ERR level. Using %pV can save some code and allow fs_err to be used, so do it. Signed-off-by: Joe Perches j...@perches.com Signed-off-by: Steven Whitehouse swhit...@redhat.com diff

[Cluster-devel] [PATCH 16/29] GFS2: global conversion to pr_foo()

2014-04-01 Thread Steven Whitehouse
From: Fabian Frederick f...@skynet.be -All printk(KERN_foo converted to pr_foo(). -Messages updated to fit in 80 columns. -fs_macros converted as well. -fs_printk removed. Signed-off-by: Fabian Frederick f...@skynet.be Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git

[Cluster-devel] [PATCH 23/29] GFS2: Re-add a call to log_flush_wait when flushing the journal

2014-04-01 Thread Steven Whitehouse
From: Bob Peterson rpete...@redhat.com Upstream commit 34cc178 changed a line of code from calling function log_flush_commit to calling log_write_header. This had the effect of eliminating a call to function log_flush_wait. That causes the journal to skip over log headers, which results in

[Cluster-devel] [PATCH 13/29] GFS2: replace kmalloc - __vmalloc / memset 0

2014-04-01 Thread Steven Whitehouse
From: Fabian Frederick f...@skynet.be Use kzalloc and __vmalloc __GFP_ZERO for clean sd_quota_bitmap allocation. Signed-off-by: Fabian Frederick f...@skynet.be Signed-off-by: Steven Whitehouse swhit...@redhat.com diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index 8bec0e31..a5cccf6 100644 ---

[Cluster-devel] [PATCH 17/29] GFS2: Move recovery variables to journal structure in memory

2014-04-01 Thread Steven Whitehouse
From: Bob Peterson rpete...@redhat.com If multiple nodes fail and their recovery work runs simultaneously, they would use the same unprotected variables in the superblock. For example, they would stomp on each other's revoked blocks lists, which resulted in file system metadata corruption. This

[Cluster-devel] [PATCH 14/29] GFS2: Clean up journal extent mapping

2014-04-01 Thread Steven Whitehouse
This patch fixes a long standing issue in mapping the journal extents. Most journals will consist of only a single extent, and although the cache took account of that by merging extents, it did not actually map large extents, but instead was doing a block by block mapping. Since the journal was

[Cluster-devel] [PATCH 28/29] GFS2: Fix uninitialized VFS inode in gfs2_create_inode

2014-04-01 Thread Steven Whitehouse
From: Abhi Das a...@redhat.com When gfs2_create_inode() fails due to quota violation, the VFS inode is not completely uninitialized. This can cause a list corruption error. This patch correctly uninitializes the VFS inode when a quota violation occurs in the gfs2_create_inode codepath.

[Cluster-devel] [PATCH 29/29] GFS2: Fix address space from page function

2014-04-01 Thread Steven Whitehouse
Now that rgrps use the address space which is part of the super block, we need to update gfs2_mapping2sbd() to take account of that. The only way to do that easily is to use a different set of address_space_operations for rgrps. Reported-by: Abhi Das a...@redhat.com Tested-by: Abhi Das