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); > } >