[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Cluster-devel] Re: [PATCH] GFS2: remove division from new statfs code



Hi,

Now in the -nmw git tree. Thanks,

Steve.

On Mon, 2009-10-26 at 13:29 -0500, Benjamin Marzinski wrote:
> It's not necessary to do any 64bit division for the statfs sync code, so
> remove it.
> 
> Signed-off-by: Benjamin Marzinski <bmarzins redhat com>
> ---
>  fs/gfs2/super.c |   17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> Index: gfs2-2.6-nmw/fs/gfs2/super.c
> ===================================================================
> --- gfs2-2.6-nmw.orig/fs/gfs2/super.c
> +++ gfs2-2.6-nmw/fs/gfs2/super.c
> @@ -472,7 +472,8 @@ void gfs2_statfs_change(struct gfs2_sbd 
>  	struct gfs2_statfs_change_host *l_sc = &sdp->sd_statfs_local;
>  	struct gfs2_statfs_change_host *m_sc = &sdp->sd_statfs_master;
>  	struct buffer_head *l_bh;
> -	int percent, sync_percent;
> +	s64 x, y;
> +	int need_sync = 0;
>  	int error;
>  
>  	error = gfs2_meta_inode_buffer(l_ip, &l_bh);
> @@ -486,16 +487,16 @@ void gfs2_statfs_change(struct gfs2_sbd 
>  	l_sc->sc_free += free;
>  	l_sc->sc_dinodes += dinodes;
>  	gfs2_statfs_change_out(l_sc, l_bh->b_data + sizeof(struct gfs2_dinode));
> -	if (m_sc->sc_free)
> -		percent = (100 * l_sc->sc_free) / m_sc->sc_free;
> -	else
> -		percent = 100;
> +	if (sdp->sd_args.ar_statfs_percent) {
> +		x = 100 * l_sc->sc_free;
> +		y = m_sc->sc_free * sdp->sd_args.ar_statfs_percent;
> +		if (x >= y || x <= -y)
> +			need_sync = 1;
> +	}
>  	spin_unlock(&sdp->sd_statfs_spin);
>  
>  	brelse(l_bh);
> -	sync_percent = sdp->sd_args.ar_statfs_percent;
> -	if (sync_percent && (percent >= sync_percent ||
> -			     percent <= -sync_percent))
> +	if (need_sync)
>  		gfs2_wake_up_statfs(sdp);
>  }
>  


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]