diff options
author | Nikita Danilov <nikita@clusterfs.com> | 2005-05-01 11:58:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-01 11:58:39 -0400 |
commit | 552fca4cbe552520d85b21e839f289c880fa48d2 (patch) | |
tree | 8a91530f62a2118e390db209779c184983684e66 | |
parent | 97e2bde47f886a317909c8a8f9bd2fcd8ce2f0b0 (diff) |
[PATCH] mpage_writepages() page locking fix
When ->writepage() returns WRITEPAGE_ACTIVATE, the page is still locked.
Explicitly unlock the page in mpage_writepages().
Signed-off-by: Nikita Danilov <nikita@clusterfs.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | fs/mpage.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/mpage.c b/fs/mpage.c index e7d8d1a77606..3923facf94eb 100644 --- a/fs/mpage.c +++ b/fs/mpage.c | |||
@@ -727,6 +727,8 @@ retry: | |||
727 | &last_block_in_bio, &ret, wbc, | 727 | &last_block_in_bio, &ret, wbc, |
728 | writepage_fn); | 728 | writepage_fn); |
729 | } | 729 | } |
730 | if (unlikely(ret == WRITEPAGE_ACTIVATE)) | ||
731 | unlock_page(page); | ||
730 | if (ret || (--(wbc->nr_to_write) <= 0)) | 732 | if (ret || (--(wbc->nr_to_write) <= 0)) |
731 | done = 1; | 733 | done = 1; |
732 | if (wbc->nonblocking && bdi_write_congested(bdi)) { | 734 | if (wbc->nonblocking && bdi_write_congested(bdi)) { |