[GFS2] Use mutices rather than semaphores

As well as a number of minor bug fixes, this patch changes GFS
to use mutices rather than semaphores. This results in better
information in case there are any locking problems.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
Steven Whitehouse
2006-02-21 12:51:39 +00:00
parent 5c4e9e0366
commit f55ab26a8f
17 changed files with 118 additions and 118 deletions

View File

@@ -182,9 +182,9 @@ static void clear_rgrpdi(struct gfs2_sbd *sdp)
void gfs2_clear_rgrpd(struct gfs2_sbd *sdp)
{
down(&sdp->sd_rindex_mutex);
mutex_lock(&sdp->sd_rindex_mutex);
clear_rgrpdi(sdp);
up(&sdp->sd_rindex_mutex);
mutex_unlock(&sdp->sd_rindex_mutex);
}
/**
@@ -301,7 +301,7 @@ static int gfs2_ri_update(struct gfs2_inode *ip)
if (!rgd)
goto fail;
init_MUTEX(&rgd->rd_mutex);
mutex_init(&rgd->rd_mutex);
lops_init_le(&rgd->rd_le, &gfs2_rg_lops);
rgd->rd_sbd = sdp;
@@ -363,13 +363,13 @@ int gfs2_rindex_hold(struct gfs2_sbd *sdp, struct gfs2_holder *ri_gh)
/* Read new copy from disk if we don't have the latest */
if (sdp->sd_rindex_vn != gl->gl_vn) {
down(&sdp->sd_rindex_mutex);
mutex_lock(&sdp->sd_rindex_mutex);
if (sdp->sd_rindex_vn != gl->gl_vn) {
error = gfs2_ri_update(ip);
if (error)
gfs2_glock_dq_uninit(ri_gh);
}
up(&sdp->sd_rindex_mutex);
mutex_unlock(&sdp->sd_rindex_mutex);
}
return error;
@@ -394,13 +394,13 @@ int gfs2_rgrp_bh_get(struct gfs2_rgrpd *rgd)
unsigned int x, y;
int error;
down(&rgd->rd_mutex);
mutex_lock(&rgd->rd_mutex);
spin_lock(&sdp->sd_rindex_spin);
if (rgd->rd_bh_count) {
rgd->rd_bh_count++;
spin_unlock(&sdp->sd_rindex_spin);
up(&rgd->rd_mutex);
mutex_unlock(&rgd->rd_mutex);
return 0;
}
spin_unlock(&sdp->sd_rindex_spin);
@@ -436,7 +436,7 @@ int gfs2_rgrp_bh_get(struct gfs2_rgrpd *rgd)
rgd->rd_bh_count++;
spin_unlock(&sdp->sd_rindex_spin);
up(&rgd->rd_mutex);
mutex_unlock(&rgd->rd_mutex);
return 0;
@@ -447,7 +447,7 @@ int gfs2_rgrp_bh_get(struct gfs2_rgrpd *rgd)
bi->bi_bh = NULL;
gfs2_assert_warn(sdp, !bi->bi_clone);
}
up(&rgd->rd_mutex);
mutex_unlock(&rgd->rd_mutex);
return error;
}