diff options
author | H. Peter Anvin | 2011-08-05 21:25:56 +0200 |
---|---|---|
committer | H. Peter Anvin | 2011-08-05 21:25:56 +0200 |
commit | 13f9a3737c903ace57d8aaebe81a3bbaeb0aa0a2 (patch) | |
tree | 6a81d50b611170ca6dd1ed9cce2b86dd19f190d8 /fs/gfs2/aops.c | |
parent | x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message (diff) | |
parent | Linux 3.0 (diff) | |
download | kernel-qcow2-linux-13f9a3737c903ace57d8aaebe81a3bbaeb0aa0a2.tar.gz kernel-qcow2-linux-13f9a3737c903ace57d8aaebe81a3bbaeb0aa0a2.tar.xz kernel-qcow2-linux-13f9a3737c903ace57d8aaebe81a3bbaeb0aa0a2.zip |
Merge commit 'v3.0' into x86/cpu
Diffstat (limited to 'fs/gfs2/aops.c')
-rw-r--r-- | fs/gfs2/aops.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c index 802ac5eeba28..f9fbbe96c222 100644 --- a/fs/gfs2/aops.c +++ b/fs/gfs2/aops.c @@ -1069,6 +1069,7 @@ int gfs2_releasepage(struct page *page, gfp_t gfp_mask) return 0; gfs2_log_lock(sdp); + spin_lock(&sdp->sd_ail_lock); head = bh = page_buffers(page); do { if (atomic_read(&bh->b_count)) @@ -1080,6 +1081,7 @@ int gfs2_releasepage(struct page *page, gfp_t gfp_mask) goto not_possible; bh = bh->b_this_page; } while(bh != head); + spin_unlock(&sdp->sd_ail_lock); gfs2_log_unlock(sdp); head = bh = page_buffers(page); @@ -1112,6 +1114,7 @@ not_possible: /* Should never happen */ WARN_ON(buffer_dirty(bh)); WARN_ON(buffer_pinned(bh)); cannot_release: + spin_unlock(&sdp->sd_ail_lock); gfs2_log_unlock(sdp); return 0; } |