diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-14 13:57:38 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-14 13:57:38 -0400 |
commit | a8336344a5fd1366eb3616d351c39cadcd077f43 (patch) | |
tree | 6ef37f62cc72151290aeb411f815eb72b7d82a3a | |
parent | faa31ce85f626dff30ba865684bd1f0ad97a9ca0 (diff) | |
download | blackbird-op-linux-a8336344a5fd1366eb3616d351c39cadcd077f43.tar.gz blackbird-op-linux-a8336344a5fd1366eb3616d351c39cadcd077f43.zip |
[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 <swhiteho@redhat.com>
-rw-r--r-- | fs/gfs2/glock.c | 2 |
1 files changed, 1 insertions, 1 deletions
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) |