From: Steven Whitehouse Date: Thu, 14 Sep 2006 17:57:38 +0000 (-0400) Subject: [GFS2] Fix glock hash clearing X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=a8336344a5fd1366eb3616d351c39cadcd077f43;p=deliverable%2Flinux.git [GFS2] Fix glock hash clearing A one liner bug fix to prevent the return value being wrong when more than one superblock is mounted. Signed-off-by: Steven Whitehouse --- diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index 2316490723c0..64a1676e5f48 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -1892,7 +1892,6 @@ static int examine_bucket(glock_examiner examiner, struct gfs2_sbd *sdp, /* Can't use hlist_for_each_entry - don't want prefetch here */ if (hlist_empty(head)) goto out; - has_entries = 1; gl = list_entry(head->first, struct gfs2_glock, gl_list); while(1) { if (gl->gl_sbd == sdp) { @@ -1902,6 +1901,7 @@ static int examine_bucket(glock_examiner examiner, struct gfs2_sbd *sdp, gfs2_glock_put(prev); prev = gl; examiner(gl); + has_entries = 1; read_lock(gl_lock_addr(hash)); } if (gl->gl_list.next == NULL)