* [patch 7/7] reiser4: fixup checkin-checkout jnodes for entd
@ 2010-02-02 1:56 Edward Shishkin
0 siblings, 0 replies; only message in thread
From: Edward Shishkin @ 2010-02-02 1:56 UTC (permalink / raw)
To: Andrew Morton, ReiserFS Development List
The bug: reiser4_writeout() calls jput for jnode
which is already destroyed:
Fix up: take the reference earler (at the point where the
jnode is attached for entd work).
Signed-off-by: Edward Shishkin <edward.shishkin@gmail.com>
---
fs/reiser4/plugin/file/file.c | 6 ++++--
fs/reiser4/vfs_ops.c | 4 +++-
2 files changed, 7 insertions(+), 3 deletions(-)
Index: linux-2.6.33-rc5-mm1/fs/reiser4/plugin/file/file.c
===================================================================
--- linux-2.6.33-rc5-mm1.orig/fs/reiser4/plugin/file/file.c
+++ linux-2.6.33-rc5-mm1/fs/reiser4/plugin/file/file.c
@@ -824,14 +824,16 @@ int find_or_create_extent(struct page *p
BUG_ON(node->atom == NULL);
JF_CLR(node, JNODE_WRITE_PREPARED);
- jput(node);
if (get_current_context()->entd) {
entd_context *ent = get_entd_context(node->tree->super);
if (ent->cur_request->page == page)
- ent->cur_request->node = node;
+ /* the following reference will be
+ dropped in reiser4_writeout */
+ ent->cur_request->node = jref(node);
}
+ jput(node);
return 0;
}
Index: linux-2.6.33-rc5-mm1/fs/reiser4/vfs_ops.c
===================================================================
--- linux-2.6.33-rc5-mm1.orig/fs/reiser4/vfs_ops.c
+++ linux-2.6.33-rc5-mm1/fs/reiser4/vfs_ops.c
@@ -184,7 +184,7 @@ void reiser4_writeout(struct super_block
* requested page itself - start flush from
* that page
*/
- node = jref(ent->cur_request->node);
+ node = ent->cur_request->node;
}
result = flush_some_atom(node, &nr_submitted, wbc,
@@ -192,6 +192,8 @@ void reiser4_writeout(struct super_block
if (result != 0)
warning("nikita-31001", "Flush failed: %i", result);
if (node)
+ /* drop the reference aquired
+ in find_or_create_extent() */
jput(node);
if (!nr_submitted)
break;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-02-02 1:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-02 1:56 [patch 7/7] reiser4: fixup checkin-checkout jnodes for entd Edward Shishkin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.