Hi, Now in the -nmw tree. Thanks,
Steve. On Thu, 2010-06-24 at 19:21 -0400, Bob Peterson wrote: > Hi, > > Here is a patch for a clean up I spotted: > > Function gfs2_write_alloc_required always returned zero as its > return code. Therefore, it doesn't need to return a return code > at all. Given that, we can use the return value to return whether > or not the dinode needs block allocations rather than passing > that value in, which in turn simplifies a bunch of error checking. > > Regards, > > Bob Peterson > Red Hat GFS > > Signed-off-by: Bob Peterson <[email protected]> > -- > fs/gfs2/aops.c | 4 +--- > fs/gfs2/bmap.c | 15 +++++---------- > fs/gfs2/bmap.h | 2 +- > fs/gfs2/file.c | 4 +--- > fs/gfs2/quota.c | 15 +++------------ > fs/gfs2/super.c | 9 +++------ > 6 files changed, 14 insertions(+), 35 deletions(-) > > diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c > index 9485a88..5e96cbd 100644 > --- a/fs/gfs2/aops.c > +++ b/fs/gfs2/aops.c > @@ -634,9 +634,7 @@ static int gfs2_write_begin(struct file *file, struct > address_space *mapping, > } > } > > - error = gfs2_write_alloc_required(ip, pos, len, &alloc_required); > - if (error) > - goto out_unlock; > + alloc_required = gfs2_write_alloc_required(ip, pos, len); > > if (alloc_required || gfs2_is_jdata(ip)) > gfs2_write_calc_reserv(ip, len, &data_blocks, &ind_blocks); > diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c > index 4a48c0f..11837fc 100644 > --- a/fs/gfs2/bmap.c > +++ b/fs/gfs2/bmap.c > @@ -1243,13 +1243,12 @@ int gfs2_file_dealloc(struct gfs2_inode *ip) > * @ip: the file being written to > * @offset: the offset to write to > * @len: the number of bytes being written > - * @alloc_required: set to 1 if an alloc is required, 0 otherwise > * > - * Returns: errno > + * Returns: 1 if an alloc is required, 0 otherwise > */ > > int gfs2_write_alloc_required(struct gfs2_inode *ip, u64 offset, > - unsigned int len, int *alloc_required) > + unsigned int len) > { > struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); > struct buffer_head bh; > @@ -1257,26 +1256,23 @@ int gfs2_write_alloc_required(struct gfs2_inode *ip, > u64 offset, > u64 lblock, lblock_stop, size; > u64 end_of_file; > > - *alloc_required = 0; > - > if (!len) > return 0; > > if (gfs2_is_stuffed(ip)) { > if (offset + len > > sdp->sd_sb.sb_bsize - sizeof(struct gfs2_dinode)) > - *alloc_required = 1; > + return 1; > return 0; > } > > - *alloc_required = 1; > shift = sdp->sd_sb.sb_bsize_shift; > BUG_ON(gfs2_is_dir(ip)); > end_of_file = (ip->i_disksize + sdp->sd_sb.sb_bsize - 1) >> shift; > lblock = offset >> shift; > lblock_stop = (offset + len + sdp->sd_sb.sb_bsize - 1) >> shift; > if (lblock_stop > end_of_file) > - return 0; > + return 1; > > size = (lblock_stop - lblock) << shift; > do { > @@ -1284,12 +1280,11 @@ int gfs2_write_alloc_required(struct gfs2_inode *ip, > u64 offset, > bh.b_size = size; > gfs2_block_map(&ip->i_inode, lblock, &bh, 0); > if (!buffer_mapped(&bh)) > - return 0; > + return 1; > size -= bh.b_size; > lblock += (bh.b_size >> ip->i_inode.i_blkbits); > } while(size > 0); > > - *alloc_required = 0; > return 0; > } > > diff --git a/fs/gfs2/bmap.h b/fs/gfs2/bmap.h > index c983177..a20a521 100644 > --- a/fs/gfs2/bmap.h > +++ b/fs/gfs2/bmap.h > @@ -52,6 +52,6 @@ int gfs2_truncatei(struct gfs2_inode *ip, u64 size); > int gfs2_truncatei_resume(struct gfs2_inode *ip); > int gfs2_file_dealloc(struct gfs2_inode *ip); > int gfs2_write_alloc_required(struct gfs2_inode *ip, u64 offset, > - unsigned int len, int *alloc_required); > + unsigned int len); > > #endif /* __BMAP_DOT_H__ */ > diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c > index ed9a94f..4edd662 100644 > --- a/fs/gfs2/file.c > +++ b/fs/gfs2/file.c > @@ -351,7 +351,6 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, > struct vm_fault *vmf) > unsigned long last_index; > u64 pos = page->index << PAGE_CACHE_SHIFT; > unsigned int data_blocks, ind_blocks, rblocks; > - int alloc_required = 0; > struct gfs2_holder gh; > struct gfs2_alloc *al; > int ret; > @@ -364,8 +363,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, > struct vm_fault *vmf) > set_bit(GLF_DIRTY, &ip->i_gl->gl_flags); > set_bit(GIF_SW_PAGED, &ip->i_flags); > > - ret = gfs2_write_alloc_required(ip, pos, PAGE_CACHE_SIZE, > &alloc_required); > - if (ret || !alloc_required) > + if (!gfs2_write_alloc_required(ip, pos, PAGE_CACHE_SIZE)) > goto out_unlock; > ret = -ENOMEM; > al = gfs2_alloc_get(ip); > diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c > index 49667d6..b0954ea 100644 > --- a/fs/gfs2/quota.c > +++ b/fs/gfs2/quota.c > @@ -789,15 +789,9 @@ static int do_sync(unsigned int num_qd, struct > gfs2_quota_data **qda) > goto out; > > for (x = 0; x < num_qd; x++) { > - int alloc_required; > - > offset = qd2offset(qda[x]); > - error = gfs2_write_alloc_required(ip, offset, > - sizeof(struct gfs2_quota), > - &alloc_required); > - if (error) > - goto out_gunlock; > - if (alloc_required) > + if (gfs2_write_alloc_required(ip, offset, > + sizeof(struct gfs2_quota))) > nalloc++; > } > > @@ -1586,10 +1580,7 @@ static int gfs2_set_dqblk(struct super_block *sb, int > type, qid_t id, > goto out_i; > > offset = qd2offset(qd); > - error = gfs2_write_alloc_required(ip, offset, sizeof(struct gfs2_quota), > - &alloc_required); > - if (error) > - goto out_i; > + alloc_required = gfs2_write_alloc_required(ip, offset, sizeof(struct > gfs2_quota)); > if (alloc_required) { > al = gfs2_alloc_get(ip); > if (al == NULL) > diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c > index 4d1aad3..4140811 100644 > --- a/fs/gfs2/super.c > +++ b/fs/gfs2/super.c > @@ -342,8 +342,6 @@ int gfs2_jdesc_check(struct gfs2_jdesc *jd) > { > struct gfs2_inode *ip = GFS2_I(jd->jd_inode); > struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode); > - int ar; > - int error; > > if (ip->i_disksize < (8 << 20) || ip->i_disksize > (1 << 30) || > (ip->i_disksize & (sdp->sd_sb.sb_bsize - 1))) { > @@ -352,13 +350,12 @@ int gfs2_jdesc_check(struct gfs2_jdesc *jd) > } > jd->jd_blocks = ip->i_disksize >> sdp->sd_sb.sb_bsize_shift; > > - error = gfs2_write_alloc_required(ip, 0, ip->i_disksize, &ar); > - if (!error && ar) { > + if (gfs2_write_alloc_required(ip, 0, ip->i_disksize)) { > gfs2_consist_inode(ip); > - error = -EIO; > + return -EIO; > } > > - return error; > + return 0; > } > > /**
