[Cluster-devel] [PATCH 4/4] GFS2: Allow caching of rindex glock

2012-04-11 Thread Steven Whitehouse
From: Bob Peterson rpete...@redhat.com

This patch allows caching of the rindex glock. We were previously
setting the GL_NOCACHE bit when the glock was released. That forced
the rindex inode to be invalidated, which caused us to re-read
rindex at the next access. However, it caused the glock to be
unnecessarily bounced around the cluster. This patch allows
the glock to remain cached, but it still causes the rindex to be
re-read once it has been written to by gfs2_grow.

Ben and I have tested single-node gfs2_grow cases and I've tested
clustered gfs2_grow cases on my four-node cluster.

Signed-off-by: Bob Peterson rpete...@redhat.com
Signed-off-by: Steven Whitehouse swhit...@redhat.com

diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
index 38b7a74..9b2ff0e 100644
--- a/fs/gfs2/aops.c
+++ b/fs/gfs2/aops.c
@@ -807,7 +807,7 @@ static int gfs2_stuffed_write_end(struct inode *inode, 
struct buffer_head *dibh,
 
if (inode == sdp-sd_rindex) {
adjust_fs_space(inode);
-   ip-i_gh.gh_flags |= GL_NOCACHE;
+   sdp-sd_rindex_uptodate = 0;
}
 
brelse(dibh);
@@ -873,7 +873,7 @@ static int gfs2_write_end(struct file *file, struct 
address_space *mapping,
 
if (inode == sdp-sd_rindex) {
adjust_fs_space(inode);
-   ip-i_gh.gh_flags |= GL_NOCACHE;
+   sdp-sd_rindex_uptodate = 0;
}
 
brelse(dibh);
-- 
1.7.4



[Cluster-devel] GFS2: Pre-pull patch posting (fixes)

2012-04-11 Thread Steven Whitehouse
Hi,

Here are four fixes for issues that have come up since the last
merge window,

Steve.



[Cluster-devel] [PATCH 3/4] GFS2: Make sure rindex is uptodate before starting transactions

2012-04-11 Thread Steven Whitehouse
From: Bob Peterson rpete...@redhat.com

This patch removes the call from gfs2_blk2rgrd to function
gfs2_rindex_update and replaces it with individual calls.
The former way turned out to be too problematic.

Signed-off-by: Bob Peterson rpete...@redhat.com
Signed-off-by: Steven Whitehouse swhit...@redhat.com

diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 197c5c4..03c04fe 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -724,7 +724,11 @@ static int do_strip(struct gfs2_inode *ip, struct 
buffer_head *dibh,
int metadata;
unsigned int revokes = 0;
int x;
-   int error = 0;
+   int error;
+
+   error = gfs2_rindex_update(sdp);
+   if (error)
+   return error;
 
if (!*top)
sm-sm_first = 0;
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c
index c35573a..a836056 100644
--- a/fs/gfs2/dir.c
+++ b/fs/gfs2/dir.c
@@ -1844,6 +1844,10 @@ static int leaf_dealloc(struct gfs2_inode *dip, u32 
index, u32 len,
unsigned int x, size = len * sizeof(u64);
int error;
 
+   error = gfs2_rindex_update(sdp);
+   if (error)
+   return error;
+
memset(rlist, 0, sizeof(struct gfs2_rgrp_list));
 
ht = kzalloc(size, GFP_NOFS);
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index c98a60e..a9ba244 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -1031,7 +1031,13 @@ static int gfs2_unlink(struct inode *dir, struct dentry 
*dentry)
struct buffer_head *bh;
struct gfs2_holder ghs[3];
struct gfs2_rgrpd *rgd;
-   int error = -EROFS;
+   int error;
+
+   error = gfs2_rindex_update(sdp);
+   if (error)
+   return error;
+
+   error = -EROFS;
 
gfs2_holder_init(dip-i_gl, LM_ST_EXCLUSIVE, 0, ghs);
gfs2_holder_init(ip-i_gl,  LM_ST_EXCLUSIVE, 0, ghs + 1);
@@ -1224,6 +1230,10 @@ static int gfs2_rename(struct inode *odir, struct dentry 
*odentry,
return 0;
}
 
+   error = gfs2_rindex_update(sdp);
+   if (error)
+   return error;
+
if (odip != ndip) {
error = gfs2_glock_nq_init(sdp-sd_rename_gl, LM_ST_EXCLUSIVE,
   0, r_gh);
@@ -1345,7 +1355,6 @@ static int gfs2_rename(struct inode *odir, struct dentry 
*odentry,
error = alloc_required;
if (error  0)
goto out_gunlock;
-   error = 0;
 
if (alloc_required) {
struct gfs2_qadata *qa = gfs2_qadata_get(ndip);
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 19354a2..3df65c9 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -332,9 +332,6 @@ struct gfs2_rgrpd *gfs2_blk2rgrpd(struct gfs2_sbd *sdp, u64 
blk, bool exact)
struct rb_node *n, *next;
struct gfs2_rgrpd *cur;
 
-   if (gfs2_rindex_update(sdp))
-   return NULL;
-
spin_lock(sdp-sd_rindex_spin);
n = sdp-sd_rindex_tree.rb_node;
while (n) {
@@ -928,6 +925,10 @@ int gfs2_fitrim(struct file *filp, void __user *argp)
} else if (copy_from_user(r, argp, sizeof(r)))
return -EFAULT;
 
+   ret = gfs2_rindex_update(sdp);
+   if (ret)
+   return ret;
+
rgd = gfs2_blk2rgrpd(sdp, r.start, 0);
rgd_end = gfs2_blk2rgrpd(sdp, r.start + r.len, 0);
 
diff --git a/fs/gfs2/xattr.c b/fs/gfs2/xattr.c
index 2e5ba42..927f4df 100644
--- a/fs/gfs2/xattr.c
+++ b/fs/gfs2/xattr.c
@@ -238,6 +238,10 @@ static int ea_dealloc_unstuffed(struct gfs2_inode *ip, 
struct buffer_head *bh,
unsigned int x;
int error;
 
+   error = gfs2_rindex_update(sdp);
+   if (error)
+   return error;
+
if (GFS2_EA_IS_STUFFED(ea))
return 0;
 
@@ -1330,6 +1334,10 @@ static int ea_dealloc_indirect(struct gfs2_inode *ip)
unsigned int x;
int error;
 
+   error = gfs2_rindex_update(sdp);
+   if (error)
+   return error;
+
memset(rlist, 0, sizeof(struct gfs2_rgrp_list));
 
error = gfs2_meta_read(ip-i_gl, ip-i_eattr, DIO_WAIT, indbh);
@@ -1439,6 +1447,10 @@ static int ea_dealloc_block(struct gfs2_inode *ip)
struct gfs2_holder gh;
int error;
 
+   error = gfs2_rindex_update(sdp);
+   if (error)
+   return error;
+
rgd = gfs2_blk2rgrpd(sdp, ip-i_eattr, 1);
if (!rgd) {
gfs2_consist_inode(ip);
-- 
1.7.4



[Cluster-devel] [PATCH 2/4] GFS2: use depends instead of select in kconfig

2012-04-11 Thread Steven Whitehouse
From: Benjamin Poirier bpoir...@suse.de

Avoids having to duplicate the dependencies of what is 'select'ed (and on
down...)

Those dependencies are currently incomplete, leading to broken builds with
GFS2_FS_LOCKING_DLM=y and IP_SCTP=n.

Signed-off-by: Benjamin Poirier bpoir...@suse.de
Signed-off-by: Steven Whitehouse swhit...@redhat.com

diff --git a/fs/gfs2/Kconfig b/fs/gfs2/Kconfig
index c465ae0..eb08c9e 100644
--- a/fs/gfs2/Kconfig
+++ b/fs/gfs2/Kconfig
@@ -1,10 +1,6 @@
 config GFS2_FS
tristate GFS2 file system support
depends on (64BIT || LBDAF)
-   select DLM if GFS2_FS_LOCKING_DLM
-   select CONFIGFS_FS if GFS2_FS_LOCKING_DLM
-   select SYSFS if GFS2_FS_LOCKING_DLM
-   select IP_SCTP if DLM_SCTP
select FS_POSIX_ACL
select CRC32
select QUOTACTL
@@ -29,7 +25,8 @@ config GFS2_FS
 
 config GFS2_FS_LOCKING_DLM
bool GFS2 DLM locking
-   depends on (GFS2_FS!=n)  NET  INET  (IPV6 || IPV6=n)  HOTPLUG
+   depends on (GFS2_FS!=n)  NET  INET  (IPV6 || IPV6=n)  \
+   HOTPLUG  DLM  CONFIGFS_FS  SYSFS
help
  Multiple node locking module for GFS2
 
-- 
1.7.4



[Cluster-devel] GFS2: Pull request (fixes)

2012-04-11 Thread Steven Whitehouse
[Apologies - I don't think the first message got signed as
 it should have. Here is a second attempt...]

Hi,

Please consider pulling the following patches,

Steve.

--
The following changes since commit dd775ae2549217d3ae09363e3edb305d0fa19928:

  Linux 3.4-rc1 (2012-03-31 16:24:09 -0700)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes.git master

Benjamin Poirier (1):
  GFS2: use depends instead of select in kconfig

Bob Peterson (3):
  GFS2: put glock reference in error patch of read_rindex_entry
  GFS2: Make sure rindex is uptodate before starting transactions
  GFS2: Allow caching of rindex glock

 fs/gfs2/Kconfig |7 ++-
 fs/gfs2/aops.c  |4 ++--
 fs/gfs2/bmap.c  |6 +-
 fs/gfs2/dir.c   |4 
 fs/gfs2/inode.c |   13 +++--
 fs/gfs2/rgrp.c  |8 +---
 fs/gfs2/xattr.c |   12 
 7 files changed, 41 insertions(+), 13 deletions(-)




signature.asc
Description: This is a digitally signed message part


[Cluster-devel] [GFS2 PATCH 1/5] GFS2: Rename function gfs2_close to gfs2_release

2012-04-11 Thread Bob Peterson
Hi,

This patch renames function gfs2_close to gfs2_release.

Regards,

Bob Peterson
Red Hat File Systems

Signed-off-by: Bob Peterson rpete...@redhat.com 
---
From: Bob Peterson rpete...@redhat.com
Date: Mon, 12 Mar 2012 10:56:01 -0500
Subject: [PATCH 1/5] GFS2: Rename function gfs2_close to gfs2_release

VFS now calls a release function where it used to call a close
function. This patch renames gfs2_close to gfs2_release so that
it makes more sense to someone reading the code.
---
 fs/gfs2/file.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index 7683458..916490f 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -559,14 +559,14 @@ fail:
 }
 
 /**
- * gfs2_close - called to close a struct file
+ * gfs2_release - called to close a struct file
  * @inode: the inode the struct file belongs to
  * @file: the struct file being closed
  *
  * Returns: errno
  */
 
-static int gfs2_close(struct inode *inode, struct file *file)
+static int gfs2_release(struct inode *inode, struct file *file)
 {
struct gfs2_sbd *sdp = inode-i_sb-s_fs_info;
struct gfs2_file *fp;
@@ -1006,7 +1006,7 @@ const struct file_operations gfs2_file_fops = {
.unlocked_ioctl = gfs2_ioctl,
.mmap   = gfs2_mmap,
.open   = gfs2_open,
-   .release= gfs2_close,
+   .release= gfs2_release,
.fsync  = gfs2_fsync,
.lock   = gfs2_lock,
.flock  = gfs2_flock,
@@ -1020,7 +1020,7 @@ const struct file_operations gfs2_dir_fops = {
.readdir= gfs2_readdir,
.unlocked_ioctl = gfs2_ioctl,
.open   = gfs2_open,
-   .release= gfs2_close,
+   .release= gfs2_release,
.fsync  = gfs2_fsync,
.lock   = gfs2_lock,
.flock  = gfs2_flock,
@@ -1038,7 +1038,7 @@ const struct file_operations gfs2_file_fops_nolock = {
.unlocked_ioctl = gfs2_ioctl,
.mmap   = gfs2_mmap,
.open   = gfs2_open,
-   .release= gfs2_close,
+   .release= gfs2_release,
.fsync  = gfs2_fsync,
.splice_read= generic_file_splice_read,
.splice_write   = generic_file_splice_write,
@@ -1050,7 +1050,7 @@ const struct file_operations gfs2_dir_fops_nolock = {
.readdir= gfs2_readdir,
.unlocked_ioctl = gfs2_ioctl,
.open   = gfs2_open,
-   .release= gfs2_close,
+   .release= gfs2_release,
.fsync  = gfs2_fsync,
.llseek = default_llseek,
 };
-- 
1.7.7.6



[Cluster-devel] [GFS2 PATCH 3/5] GFS2: Use slab for block reservation memory

2012-04-11 Thread Bob Peterson
Hi,

This patch changes block reservations so it uses slab storage.

Regards,

Bob Peterson
Red Hat File Systems

Signed-off-by: Bob Peterson rpete...@redhat.com 
--
From: Bob Peterson rpete...@redhat.com
Date: Mon, 12 Mar 2012 12:35:57 -0500
Subject: [PATCH 3/5] GFS2: Use slab for block reservation memory

This patch changes block reservation memory to use slab storage
rather than kmalloc/kfree.
---
 fs/gfs2/main.c |   10 ++
 fs/gfs2/rgrp.c |   19 +++
 fs/gfs2/util.c |1 +
 fs/gfs2/util.h |1 +
 4 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c
index 754426b..ce17944 100644
--- a/fs/gfs2/main.c
+++ b/fs/gfs2/main.c
@@ -143,6 +143,12 @@ static int __init init_gfs2_fs(void)
if (!gfs2_quotad_cachep)
goto fail;
 
+   gfs2_rsrv_cachep = kmem_cache_create(gfs2_mblk,
+sizeof(struct gfs2_blkreserv),
+  0, 0, NULL);
+   if (!gfs2_rsrv_cachep)
+   goto fail;
+
register_shrinker(qd_shrinker);
 
error = register_filesystem(gfs2_fs_type);
@@ -186,6 +192,9 @@ fail:
unregister_shrinker(qd_shrinker);
gfs2_glock_exit();
 
+   if (gfs2_rsrv_cachep)
+   kmem_cache_destroy(gfs2_rsrv_cachep);
+
if (gfs2_quotad_cachep)
kmem_cache_destroy(gfs2_quotad_cachep);
 
@@ -226,6 +235,7 @@ static void __exit exit_gfs2_fs(void)
rcu_barrier();
 
mempool_destroy(gfs2_bh_pool);
+   kmem_cache_destroy(gfs2_rsrv_cachep);
kmem_cache_destroy(gfs2_quotad_cachep);
kmem_cache_destroy(gfs2_rgrpd_cachep);
kmem_cache_destroy(gfs2_bufdata_cachep);
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 19bde40..0354f2c 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -1000,11 +1000,13 @@ struct gfs2_qadata *gfs2_qadata_get(struct gfs2_inode 
*ip)
  * Returns: the struct gfs2_qadata
  */
 
-static struct gfs2_blkreserv *gfs2_blkrsv_get(struct gfs2_inode *ip)
+static int gfs2_blkrsv_get(struct gfs2_inode *ip)
 {
BUG_ON(ip-i_res != NULL);
-   ip-i_res = kzalloc(sizeof(struct gfs2_blkreserv), GFP_NOFS);
-   return ip-i_res;
+   ip-i_res = kmem_cache_zalloc(gfs2_rsrv_cachep, GFP_NOFS);
+   if (!ip-i_res)
+   return -ENOMEM;
+   return 0;
 }
 
 /**
@@ -1162,7 +1164,7 @@ static int get_local_rgrp(struct gfs2_inode *ip, u64 
*last_unlinked)
 static void gfs2_blkrsv_put(struct gfs2_inode *ip)
 {
BUG_ON(ip-i_res == NULL);
-   kfree(ip-i_res);
+   kmem_cache_free(gfs2_rsrv_cachep, ip-i_res);
ip-i_res = NULL;
 }
 
@@ -1177,14 +1179,15 @@ int gfs2_inplace_reserve(struct gfs2_inode *ip, u32 
requested)
 {
struct gfs2_sbd *sdp = GFS2_SB(ip-i_inode);
struct gfs2_blkreserv *rs;
-   int error = 0;
+   int error;
u64 last_unlinked = NO_BLOCK;
int tries = 0;
 
-   rs = gfs2_blkrsv_get(ip);
-   if (!rs)
-   return -ENOMEM;
+   error = gfs2_blkrsv_get(ip);
+   if (error)
+   return error;
 
+   rs = ip-i_res;
rs-rs_requested = requested;
if (gfs2_assert_warn(sdp, requested)) {
error = -EINVAL;
diff --git a/fs/gfs2/util.c b/fs/gfs2/util.c
index 9e7765e..3afc6ac 100644
--- a/fs/gfs2/util.c
+++ b/fs/gfs2/util.c
@@ -25,6 +25,7 @@ struct kmem_cache *gfs2_inode_cachep __read_mostly;
 struct kmem_cache *gfs2_bufdata_cachep __read_mostly;
 struct kmem_cache *gfs2_rgrpd_cachep __read_mostly;
 struct kmem_cache *gfs2_quotad_cachep __read_mostly;
+struct kmem_cache *gfs2_rsrv_cachep __read_mostly;
 mempool_t *gfs2_bh_pool __read_mostly;
 
 void gfs2_assert_i(struct gfs2_sbd *sdp)
diff --git a/fs/gfs2/util.h b/fs/gfs2/util.h
index a4ce76c..8fbe6cf 100644
--- a/fs/gfs2/util.h
+++ b/fs/gfs2/util.h
@@ -152,6 +152,7 @@ extern struct kmem_cache *gfs2_inode_cachep;
 extern struct kmem_cache *gfs2_bufdata_cachep;
 extern struct kmem_cache *gfs2_rgrpd_cachep;
 extern struct kmem_cache *gfs2_quotad_cachep;
+extern struct kmem_cache *gfs2_rsrv_cachep;
 extern mempool_t *gfs2_bh_pool;
 
 static inline unsigned int gfs2_tune_get_i(struct gfs2_tune *gt,
-- 
1.7.7.6



[Cluster-devel] [GFS2 PATCH 4/5] GFS2: Eliminate offset parameter to gfs2_setbit

2012-04-11 Thread Bob Peterson
Hi,

This patch eliminates a redundant parameter.

Regards,

Bob Peterson
Red Hat File Systems

Signed-off-by: Bob Peterson rpete...@redhat.com 
---
From: Bob Peterson rpete...@redhat.com
Date: Mon, 12 Mar 2012 13:03:22 -0500
Subject: [PATCH 4/5] GFS2: Eliminate offset parameter to gfs2_setbit

Since we are now passing the bitmap pointer to function gfs2_setbit
we no longer need to pass the bi_offset. We can reference it
directly. This patch implements that, plus fixes the parameter
comments.
---
 fs/gfs2/rgrp.c |   23 ---
 1 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 0354f2c..c90ad60 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -70,24 +70,25 @@ static u32 rgblk_search(struct gfs2_rgrpd *rgd, u32 goal,
 
 /**
  * gfs2_setbit - Set a bit in the bitmaps
- * @buffer: the buffer that holds the bitmaps
- * @buflen: the length (in bytes) of the buffer
+ * @rgd: the resource group descriptor
+ * @buf1: the primary buffer that holds the bitmaps
+ * @buf2: the clone buffer that holds the bitmaps
+ * @bi: the bitmap structure
  * @block: the block to set
  * @new_state: the new state of the block
  *
  */
 
 static inline void gfs2_setbit(struct gfs2_rgrpd *rgd, unsigned char *buf1,
-  unsigned char *buf2, unsigned int offset,
-  struct gfs2_bitmap *bi, u32 block,
-  unsigned char new_state)
+  unsigned char *buf2, struct gfs2_bitmap *bi,
+  u32 block, unsigned char new_state)
 {
unsigned char *byte1, *byte2, *end, cur_state;
unsigned int buflen = bi-bi_len;
const unsigned int bit = (block % GFS2_NBBY) * GFS2_BIT_SIZE;
 
-   byte1 = buf1 + offset + (block / GFS2_NBBY);
-   end = buf1 + offset + buflen;
+   byte1 = buf1 + bi-bi_offset + (block / GFS2_NBBY);
+   end = buf1 + bi-bi_offset + buflen;
 
BUG_ON(byte1 = end);
 
@@ -110,7 +111,7 @@ static inline void gfs2_setbit(struct gfs2_rgrpd *rgd, 
unsigned char *buf1,
*byte1 ^= (cur_state ^ new_state)  bit;
 
if (buf2) {
-   byte2 = buf2 + offset + (block / GFS2_NBBY);
+   byte2 = buf2 + bi-bi_offset + (block / GFS2_NBBY);
cur_state = (*byte2  bit)  GFS2_BIT_MASK;
*byte2 ^= (cur_state ^ new_state)  bit;
}
@@ -1368,7 +1369,7 @@ static u64 gfs2_alloc_extent(struct gfs2_rgrpd *rgd, 
struct gfs2_bitmap *bi,
*n = 0;
buffer = bi-bi_bh-b_data + bi-bi_offset;
gfs2_trans_add_bh(rgd-rd_gl, bi-bi_bh, 1);
-   gfs2_setbit(rgd, bi-bi_bh-b_data, bi-bi_clone, bi-bi_offset,
+   gfs2_setbit(rgd, bi-bi_bh-b_data, bi-bi_clone,
bi, blk, dinode ? GFS2_BLKST_DINODE : GFS2_BLKST_USED);
(*n)++;
goal = blk;
@@ -1379,7 +1380,7 @@ static u64 gfs2_alloc_extent(struct gfs2_rgrpd *rgd, 
struct gfs2_bitmap *bi,
if (gfs2_testbit(rgd, buffer, bi-bi_len, goal) !=
GFS2_BLKST_FREE)
break;
-   gfs2_setbit(rgd, bi-bi_bh-b_data, bi-bi_clone, bi-bi_offset,
+   gfs2_setbit(rgd, bi-bi_bh-b_data, bi-bi_clone,
bi, goal, GFS2_BLKST_USED);
(*n)++;
}
@@ -1437,7 +1438,7 @@ static struct gfs2_rgrpd *rgblk_free(struct gfs2_sbd 
*sdp, u64 bstart,
   bi-bi_len);
}
gfs2_trans_add_bh(rgd-rd_gl, bi-bi_bh, 1);
-   gfs2_setbit(rgd, bi-bi_bh-b_data, NULL, bi-bi_offset,
+   gfs2_setbit(rgd, bi-bi_bh-b_data, NULL,
bi, buf_blk, new_state);
}
 
-- 
1.7.7.6



[Cluster-devel] [GFS2 PATCH 5/5] GFS2: Fix function parameter comments in rgrp.c

2012-04-11 Thread Bob Peterson
Hi,

This patch just fixes a bunch of function parameter comments.
Slowly, over the years, the comments have gotten out of date
(mostly my fault, as I haven't been good at keeping them up to date).
This patch rectifies some of that.

Regards,

Bob Peterson
Red Hat File Systems

Signed-off-by: Bob Peterson rpete...@redhat.com 
---
From: Bob Peterson rpete...@redhat.com
Date: Mon, 12 Mar 2012 13:33:33 -0500
Subject: [PATCH 5/5] GFS2: Fix function parameter comments in rgrp.c

This patch fixes the function comments in rgrp.c that describe
parameter passing to represent what's really passed.
---
 fs/gfs2/rgrp.c |   28 
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index c90ad60..6712dac 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -119,6 +119,7 @@ static inline void gfs2_setbit(struct gfs2_rgrpd *rgd, 
unsigned char *buf1,
 
 /**
  * gfs2_testbit - test a bit in the bitmaps
+ * @rgd: the resource group descriptor
  * @buffer: the buffer that holds the bitmaps
  * @buflen: the length (in bytes) of the buffer
  * @block: the block to read
@@ -180,7 +181,7 @@ static inline u64 gfs2_bit_search(const __le64 *ptr, u64 
mask, u8 state)
 /**
  * gfs2_bitfit - Search an rgrp's bitmap buffer to find a bit-pair representing
  *   a block in a given allocation state.
- * @buffer: the buffer that holds the bitmaps
+ * @buf: the buffer that holds the bitmaps
  * @len: the length (in bytes) of the buffer
  * @goal: start search at this block's bit-pair (within @buffer)
  * @state: GFS2_BLKST_XXX the state of the block we're looking for.
@@ -232,6 +233,7 @@ static u32 gfs2_bitfit(const u8 *buf, const unsigned int 
len,
 
 /**
  * gfs2_bitcount - count the number of bits in a certain state
+ * @rgd: the resource group descriptor
  * @buffer: the buffer that holds the bitmaps
  * @buflen: the length (in bytes) of the buffer
  * @state: the state of the block we're looking for
@@ -265,7 +267,6 @@ static u32 gfs2_bitcount(struct gfs2_rgrpd *rgd, const u8 
*buffer,
 
 /**
  * gfs2_rgrp_verify - Verify that a resource group is consistent
- * @sdp: the filesystem
  * @rgd: the rgrp
  *
  */
@@ -323,7 +324,8 @@ static inline int rgrp_contains_block(struct gfs2_rgrpd 
*rgd, u64 block)
 /**
  * gfs2_blk2rgrpd - Find resource group for a given data/meta block number
  * @sdp: The GFS2 superblock
- * @n: The data block number
+ * @blk: The data block number
+ * @exact: True if this needs to be an exact match
  *
  * Returns: The resource group, or NULL if not found
  */
@@ -384,7 +386,7 @@ struct gfs2_rgrpd *gfs2_rgrpd_get_first(struct gfs2_sbd 
*sdp)
 
 /**
  * gfs2_rgrpd_get_next - get the next RG
- * @rgd: A RG
+ * @rgd: the resource group descriptor
  *
  * Returns: The next rgrp
  */
@@ -533,6 +535,7 @@ static int compute_bitstructs(struct gfs2_rgrpd *rgd)
 
 /**
  * gfs2_ri_total - Total up the file system space, according to the rindex.
+ * @sdp: the filesystem
  *
  */
 u64 gfs2_ri_total(struct gfs2_sbd *sdp)
@@ -586,7 +589,8 @@ static int rgd_insert(struct gfs2_rgrpd *rgd)
 
 /**
  * read_rindex_entry - Pull in a new resource index entry from the disk
- * @gl: The glock covering the rindex inode
+ * @ip: The GFS2 inode
+ * @ra_state: The read-ahead state
  *
  * Returns: 0 on success,  0 on EOF, error code otherwise
  */
@@ -744,7 +748,7 @@ static void gfs2_rgrp_out(struct gfs2_rgrpd *rgd, void *buf)
 
 /**
  * gfs2_rgrp_go_lock - Read in a RG's header and bitmaps
- * @rgd: the struct gfs2_rgrpd describing the RG to read in
+ * @gh: The glock holder for the resource group
  *
  * Read in all of a Resource Group's header and bitmap blocks.
  * Caller must eventually call gfs2_rgrp_relse() to free the bitmaps.
@@ -804,7 +808,7 @@ fail:
 
 /**
  * gfs2_rgrp_go_unlock - Release RG bitmaps read in with gfs2_rgrp_bh_get()
- * @rgd: the struct gfs2_rgrpd describing the RG to read in
+ * @gh: The glock holder for the resource group
  *
  */
 
@@ -1039,6 +1043,8 @@ static inline u32 gfs2_bi2rgd_blk(struct gfs2_bitmap *bi, 
u32 blk)
 /**
  * try_rgrp_unlink - Look for any unlinked, allocated, but unused inodes
  * @rgd: The rgrp
+ * @last_unlinked: block address of the last dinode we unlinked
+ * @skip: block address we should explicitly not unlink
  *
  * Returns: 0 if no error
  *  The inode, if one has been found, in inode.
@@ -1103,7 +1109,7 @@ static void try_rgrp_unlink(struct gfs2_rgrpd *rgd, u64 
*last_unlinked, u64 skip
 /**
  * get_local_rgrp - Choose and lock a rgrp for allocation
  * @ip: the inode to reserve space for
- * @rgp: the chosen and locked rgrp
+ * @last_unlinked: the last unlinked block
  *
  * Try to acquire rgrp in way which avoids contending with others.
  *
@@ -1172,6 +1178,7 @@ static void gfs2_blkrsv_put(struct gfs2_inode *ip)
 /**
  * gfs2_inplace_reserve - Reserve space in the filesystem
  * @ip: the inode to reserve space for
+ * @requested: the number of blocks to be reserved
  *
  * Returns: errno
  */
@@