[GFS2] Fix glock hash clearing
Steven Whitehouse [Thu, 14 Sep 2006 17:57:38 +0000 (13:57 -0400)]
A one liner bug fix to prevent the return value being
wrong when more than one superblock is mounted.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>

fs/gfs2/glock.c

index 2316490..64a1676 100644 (file)
@@ -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)