Cluster-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Cluster-devel] GFS2: Adding missing unlock_page()
@ 2011-03-14 14:07 Steven Whitehouse
  0 siblings, 0 replies; only message in thread
From: Steven Whitehouse @ 2011-03-14 14:07 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Hi,

This has been sent to me via bugzilla, but it needs to go upstream
first, so here is the upstream patch. I've given it a quick test
and it all seems correct,

Steve.

From 6c474f7bc1ef70bc05ce486e7e7e524124122de8 Mon Sep 17 00:00:00 2001
From: Maxim <maxim.patlasov@gmail.com>
Date: Mon, 14 Mar 2011 13:19:21 +0000
Subject: [PATCH] GFS2: Adding missing unlock_page()

gfs2_write_begin() calls grab_cache_page_write_begin() that returns *locked*
page. Correspondent error-handling path lacks for unlock_page() call:

> out:
> 	if (error == 0)
> 		return 0;
>
> 	page_cache_release(page);

The whole system hangs if gfs2_unstuff_dinode() called from gfs2_write_begin()
failed for some reason.

Reported-by: Maxim <maxim.patlasov@gmail.com>
Signed-off-by: Maxim <maxim.patlasov@gmail.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>

diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
index 4f36f88..aad77e4 100644
--- a/fs/gfs2/aops.c
+++ b/fs/gfs2/aops.c
@@ -695,6 +695,7 @@ out:
 	if (error == 0)
 		return 0;
 
+	unlock_page(page);
 	page_cache_release(page);
 
 	gfs2_trans_end(sdp);
-- 
1.7.4





^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2011-03-14 14:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-14 14:07 [Cluster-devel] GFS2: Adding missing unlock_page() Steven Whitehouse

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox