diff options
author | Benjamin Marzinski <bmarzins@redhat.com> | 2009-10-26 14:29:47 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2009-12-03 06:55:32 -0500 |
commit | c14f5735e724cb5338ca8298d42b1658008a10d7 (patch) | |
tree | 74c198fe29824440a8fd52463fe9f326718da7cd /fs/gfs2/super.c | |
parent | 3d3c10f2ce80d2a19e5e02023c2b7ab7086c36d5 (diff) |
GFS2: remove division from new statfs code
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>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/super.c')
-rw-r--r-- | fs/gfs2/super.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 3fee2fd3ae43..b1dcfab36465 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c | |||
@@ -472,7 +472,8 @@ void gfs2_statfs_change(struct gfs2_sbd *sdp, s64 total, s64 free, | |||
472 | struct gfs2_statfs_change_host *l_sc = &sdp->sd_statfs_local; | 472 | struct gfs2_statfs_change_host *l_sc = &sdp->sd_statfs_local; |
473 | struct gfs2_statfs_change_host *m_sc = &sdp->sd_statfs_master; | 473 | struct gfs2_statfs_change_host *m_sc = &sdp->sd_statfs_master; |
474 | struct buffer_head *l_bh; | 474 | struct buffer_head *l_bh; |
475 | int percent, sync_percent; | 475 | s64 x, y; |
476 | int need_sync = 0; | ||
476 | int error; | 477 | int error; |
477 | 478 | ||
478 | error = gfs2_meta_inode_buffer(l_ip, &l_bh); | 479 | error = gfs2_meta_inode_buffer(l_ip, &l_bh); |
@@ -486,16 +487,16 @@ void gfs2_statfs_change(struct gfs2_sbd *sdp, s64 total, s64 free, | |||
486 | l_sc->sc_free += free; | 487 | l_sc->sc_free += free; |
487 | l_sc->sc_dinodes += dinodes; | 488 | l_sc->sc_dinodes += dinodes; |
488 | gfs2_statfs_change_out(l_sc, l_bh->b_data + sizeof(struct gfs2_dinode)); | 489 | gfs2_statfs_change_out(l_sc, l_bh->b_data + sizeof(struct gfs2_dinode)); |
489 | if (m_sc->sc_free) | 490 | if (sdp->sd_args.ar_statfs_percent) { |
490 | percent = (100 * l_sc->sc_free) / m_sc->sc_free; | 491 | x = 100 * l_sc->sc_free; |
491 | else | 492 | y = m_sc->sc_free * sdp->sd_args.ar_statfs_percent; |
492 | percent = 100; | 493 | if (x >= y || x <= -y) |
494 | need_sync = 1; | ||
495 | } | ||
493 | spin_unlock(&sdp->sd_statfs_spin); | 496 | spin_unlock(&sdp->sd_statfs_spin); |
494 | 497 | ||
495 | brelse(l_bh); | 498 | brelse(l_bh); |
496 | sync_percent = sdp->sd_args.ar_statfs_percent; | 499 | if (need_sync) |
497 | if (sync_percent && (percent >= sync_percent || | ||
498 | percent <= -sync_percent)) | ||
499 | gfs2_wake_up_statfs(sdp); | 500 | gfs2_wake_up_statfs(sdp); |
500 | } | 501 | } |
501 | 502 | ||