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 <bmarz...@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);
>  }
>  

Reply via email to