GFS2: Addendum patch 2 for gfs2_grow
PATCH 1/1 GFS2: Addendum patch 2 for gfs2_grow
This addendum patch 2 corrects three things:
1. It fixes a stupid mistake in the previous addendum that broke gfs2.
Ref: https://www.redhat.com/archives/cluster-devel/2007-May/msg00162.html
2. It fixes a problem that Dave Teigland pointed out regarding the external declarations in ops_address.h being in the wrong place.
3. It recasts a couple more %llu printks to (unsigned long long) as requested by Steve Whitehouse.
I would have loved to put this all in one revised patch, but there was
a rush to get some patches for RHEL5. Therefore, the previous patches
were applied to the git tree "as is" and therefore, I'm posting another addendum. Sorry.
This patch is to be applied to today's rebased 2.6.22-rc1 kernel git tree.
--
fs/gfs2/glock.c | 7 ++++--- fs/gfs2/ops_address.c | 1 + fs/gfs2/ops_address.h | 3 --- fs/gfs2/rgrp.c | 6 +++--- fs/gfs2/rgrp.h | 1 + 5 files changed, 9 insertions(+), 9 deletions(-)
fs/gfs2/glock.c +4 -3
@@ -1823,7 +1823,8 @@ static int dump_inode(struct glock_iter *gi, struct gfs2_inode *ip)print_dbg (gi," Inode:\n" );print_dbg (gi," num = %llu/%llu\n" , - ip->i_num.no_formal_ino, ip->i_num.no_addr); + (unsigned long long )ip->i_num.no_formal_ino, + (unsigned long long )ip->i_num.no_addr);print_dbg (gi," type = %u\n" ,IF2DT (ip->i_inode.i_mode));print_dbg (gi," i_flags =" );for (x =0 ; x <32 ; x++)
@@ -1909,8 +1910,8 @@ static int dump_glock(struct glock_iter *gi, struct gfs2_glock *gl) }if (test_bit (GLF_DEMOTE , &gl->gl_flags)) {print_dbg (gi," Demotion req to state %u (%llu uS ago)\n" , - gl->gl_demote_state, - (u64)(jiffies - gl->gl_demote_time)*(1000000 /HZ )); + gl->gl_demote_state, (unsigned long long ) + (jiffies - gl->gl_demote_time)*(1000000 /HZ )); }if (gl->gl_ops == &gfs2_inode_glops && gl->gl_object) { if (!test_bit(GLF_LOCK, &gl->gl_flags) &&
fs/gfs2/ops_address.c +1 -0
@@ -32,6 +32,7 @@#include "trans.h" #include "rgrp.h" #include "ops_file.h" +#include "super.h" #include "util.h" #include "glops.h"
fs/gfs2/ops_address.h +0 -3
@@ -18,8 +18,5 @@ extern const struct address_space_operations gfs2_file_aops;extern int gfs2_get_block (struct inode *inode,sector_t lblock,struct buffer_head *bh_result,int create);extern int gfs2_releasepage (struct page *page,gfp_t gfp_mask); -extern u64 gfs2_ri_total (struct gfs2_sbd *sdp); -extern void gfs2_statfs_change (struct gfs2_sbd *sdp,s64 total,s64 free, -s64 dinodes);#endif /* __OPS_ADDRESS_DOT_H__ */
fs/gfs2/rgrp.c +3 -3
@@ -527,10 +527,10 @@ static int gfs2_ri_update(struct gfs2_inode *ip)struct gfs2_sbd *sdp =GFS2_SB (&ip->i_inode);struct inode *inode = &ip->i_inode;struct file_ra_state ra_state; -u64 junk = ip->i_di.di_size; +u64 rgrp_count = ip->i_di.di_size;int error; -if (do_div (junk,sizeof (struct gfs2_rindex ))) { +if (do_div (rgrp_count,sizeof (struct gfs2_rindex ))) {gfs2_consist_inode (ip);return -EIO ; }
@@ -538,7 +538,7 @@ static int gfs2_ri_update(struct gfs2_inode *ip)clear_rgrpdi (sdp);file_ra_state_init (&ra_state, inode->i_mapping); -for (sdp->sd_rgrps =0 ;; sdp->sd_rgrps++) { +for (sdp->sd_rgrps =0 ; sdp->sd_rgrps < rgrp_count; sdp->sd_rgrps++) { error =read_rindex_entry (ip, &ra_state);if (error) {clear_rgrpdi (sdp);
fs/gfs2/rgrp.h +1 -0
@@ -65,5 +65,6 @@ void gfs2_rlist_add(struct gfs2_sbd *sdp, struct gfs2_rgrp_list *rlist,void gfs2_rlist_alloc (struct gfs2_rgrp_list *rlist,unsigned int state,int flags);void gfs2_rlist_free (struct gfs2_rgrp_list *rlist); +u64 gfs2_ri_total (struct gfs2_sbd *sdp);#endif /* __RGRP_DOT_H__ */
PATCH 1/1 GFS2: Addendum patch 2 for gfs2_grow
Hi,
Now in the -nmw git tree. Thanks,
Steve.
Quoted 113 lines · Robert Peterson
This addendum patch 2 corrects three things:
1. It fixes a stupid mistake in the previous addendum that broke gfs2.
Ref: https://www.redhat.com/archives/cluster-devel/2007-May/msg00162.html
2. It fixes a problem that Dave Teigland pointed out regarding the external declarations inops_address.hbeing in the wrong place.
3. It recasts a couple more %llu printks to (unsigned long long) as requested by Steve Whitehouse.I would have loved to put this all in one revised patch, but there was
a rush to get some patches for RHEL5. Therefore, the previous patches
were applied to the git tree "as is" and therefore, I'm posting another addendum. Sorry.This patch is to be applied to today's rebased 2.6.22-rc1 kernel git tree.
Signed-off-by Bob Peterson <[email protected]>--
fs/gfs2/glock.c | 7 ++++--- fs/gfs2/ops_address.c | 1 + fs/gfs2/ops_address.h | 3 --- fs/gfs2/rgrp.c | 6 +++--- fs/gfs2/rgrp.h | 1 + 5 files changed, 9 insertions(+), 9 deletions(-)fs/gfs2/glock.c +4
-3@@ -1823,7 +1823,8 @@ static int dump_inode(struct glock_iter *gi, struct gfs2_inode *ip)print_dbg (gi," Inode:\n" );print_dbg (gi," num = %llu/%llu\n" , - ip->i_num.no_formal_ino, ip->i_num.no_addr); + (unsigned long long )ip->i_num.no_formal_ino, + (unsigned long long )ip->i_num.no_addr);print_dbg (gi," type = %u\n" ,IF2DT (ip->i_inode.i_mode));print_dbg (gi," i_flags =" );for (x =0 ; x <32 ; x++)@@ -1909,8 +1910,8 @@ static int dump_glock(struct glock_iter *gi, struct gfs2_glock *gl) }if (test_bit (GLF_DEMOTE , &gl->gl_flags)) {print_dbg (gi," Demotion req to state %u (%llu uS ago)\n" , - gl->gl_demote_state, - (u64)(jiffies - gl->gl_demote_time)*(1000000 /HZ )); + gl->gl_demote_state, (unsigned long long ) + (jiffies - gl->gl_demote_time)*(1000000 /HZ )); }if (gl->gl_ops == &gfs2_inode_glops && gl->gl_object) { if (!test_bit(GLF_LOCK, &gl->gl_flags) &&fs/gfs2/ops_address.c +1
-0@@ -32,6 +32,7 @@#include "trans.h" #include "rgrp.h" #include "ops_file.h" +#include "super.h" #include "util.h" #include "glops.h" fs/gfs2/ops_address.h +0
-3@@ -18,8 +18,5 @@ extern const struct address_space_operations gfs2_file_aops;extern int gfs2_get_block (struct inode *inode,sector_t lblock,struct buffer_head *bh_result,int create);extern int gfs2_releasepage (struct page *page,gfp_t gfp_mask); -extern u64 gfs2_ri_total (struct gfs2_sbd *sdp); -extern void gfs2_statfs_change (struct gfs2_sbd *sdp,s64 total,s64 free, -s64 dinodes);#endif /* __OPS_ADDRESS_DOT_H__ */ fs/gfs2/rgrp.c +3
-3@@ -527,10 +527,10 @@ static int gfs2_ri_update(struct gfs2_inode *ip)struct gfs2_sbd *sdp =GFS2_SB (&ip->i_inode);struct inode *inode = &ip->i_inode;struct file_ra_state ra_state; -u64 junk = ip->i_di.di_size; +u64 rgrp_count = ip->i_di.di_size;int error; -if (do_div (junk,sizeof (struct gfs2_rindex ))) { +if (do_div (rgrp_count,sizeof (struct gfs2_rindex ))) {gfs2_consist_inode (ip);return -EIO ; }@@ -538,7 +538,7 @@ static int gfs2_ri_update(struct gfs2_inode *ip)clear_rgrpdi (sdp);file_ra_state_init (&ra_state, inode->i_mapping); -for (sdp->sd_rgrps =0 ;; sdp->sd_rgrps++) { +for (sdp->sd_rgrps =0 ; sdp->sd_rgrps < rgrp_count; sdp->sd_rgrps++) { error =read_rindex_entry (ip, &ra_state);if (error) {clear_rgrpdi (sdp);fs/gfs2/rgrp.h +1
-0@@ -65,5 +65,6 @@ void gfs2_rlist_add(struct gfs2_sbd *sdp, struct gfs2_rgrp_list *rlist,void gfs2_rlist_alloc (struct gfs2_rgrp_list *rlist,unsigned int state,int flags);void gfs2_rlist_free (struct gfs2_rgrp_list *rlist); +u64 gfs2_ri_total (struct gfs2_sbd *sdp);#endif /* __RGRP_DOT_H__ */