Hi,

This patch eliminates the sd_statfs_mutex variable when doing
updates to local statfs change files.  The new code uses the
sd_statfs_spin spin_lock that's already taken to get the same
effect.

Regards,

Bob Peterson
Red Hat GFS

Signed-off-by: Bob Peterson <[EMAIL PROTECTED]> 
--
 .../fs/gfs2/incore.h                               |    1 -
 .../fs/gfs2/ops_fstype.c                           |    1 -
 .../fs/gfs2/super.c                                |   10 ++--------
  3 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/gfs2-2.6.git.patch3/fs/gfs2/incore.h 
b/gfs2-2.6.git.patch4/fs/gfs2/incore.h
index 14862d1..9a83429 100644
--- a/gfs2-2.6.git.patch3/fs/gfs2/incore.h
+++ b/gfs2-2.6.git.patch4/fs/gfs2/incore.h
@@ -527,7 +527,6 @@ struct gfs2_sbd {
        /* StatFS stuff */
 
        spinlock_t sd_statfs_spin;
-       struct mutex sd_statfs_mutex;
        struct gfs2_statfs_change_host sd_statfs_master;
        struct gfs2_statfs_change_host sd_statfs_local;
        unsigned long sd_statfs_sync_time;
diff --git a/gfs2-2.6.git.patch3/fs/gfs2/ops_fstype.c 
b/gfs2-2.6.git.patch4/fs/gfs2/ops_fstype.c
index 35ec630..22e260e 100644
--- a/gfs2-2.6.git.patch3/fs/gfs2/ops_fstype.c
+++ b/gfs2-2.6.git.patch4/fs/gfs2/ops_fstype.c
@@ -60,7 +60,6 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb)
 
        mutex_init(&sdp->sd_inum_mutex);
        spin_lock_init(&sdp->sd_statfs_spin);
-       mutex_init(&sdp->sd_statfs_mutex);
 
        spin_lock_init(&sdp->sd_rindex_spin);
        mutex_init(&sdp->sd_rindex_mutex);
diff --git a/gfs2-2.6.git.patch3/fs/gfs2/super.c 
b/gfs2-2.6.git.patch4/fs/gfs2/super.c
index dda7747..da5b29c 100644
--- a/gfs2-2.6.git.patch3/fs/gfs2/super.c
+++ b/gfs2-2.6.git.patch4/fs/gfs2/super.c
@@ -686,11 +686,8 @@ void gfs2_statfs_change(struct gfs2_sbd *sdp, s64 total, 
s64 free,
        if (error)
                return;
 
-       mutex_lock(&sdp->sd_statfs_mutex);
-       gfs2_trans_add_bh(l_ip->i_gl, l_bh, 1);
-       mutex_unlock(&sdp->sd_statfs_mutex);
-
        spin_lock(&sdp->sd_statfs_spin);
+       gfs2_trans_add_bh(l_ip->i_gl, l_bh, 1);
        l_sc->sc_total += total;
        l_sc->sc_free += free;
        l_sc->sc_dinodes += dinodes;
@@ -736,11 +733,8 @@ int gfs2_statfs_sync(struct gfs2_sbd *sdp)
        if (error)
                goto out_bh2;
 
-       mutex_lock(&sdp->sd_statfs_mutex);
-       gfs2_trans_add_bh(l_ip->i_gl, l_bh, 1);
-       mutex_unlock(&sdp->sd_statfs_mutex);
-
        spin_lock(&sdp->sd_statfs_spin);
+       gfs2_trans_add_bh(l_ip->i_gl, l_bh, 1);
        m_sc->sc_total += l_sc->sc_total;
        m_sc->sc_free += l_sc->sc_free;
        m_sc->sc_dinodes += l_sc->sc_dinodes;


Reply via email to