lkml.org 
[lkml]   [2004]   [Apr]   [27]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateMon, 26 Apr 2004 23:45:14 -0700 (PDT)
FromJunfeng Yang <>
Subject[CHECKER] A potential memory leak in fs/jbd/commit.c (2.4.19)
Below is a potential leak in file fs/jbd/commit.c
------------------------------------------------------------------------------
[BUG] jb->b_commited_data && jh->b_frozen_data may be leaked when journal
is aborted.  journal will be set to abort when we can't locate the next
log block or we can't get a new descriptor.  if current journal head jh
happens to have b_commited_data or b_frozen_data associated with it,
they'll be leaked.
void journal_commit_transaction(journal_t *journal)
{
....
	while (commit_transaction->t_buffers) {
		/* Find the next buffer to be journaled... */
		jh = commit_transaction->t_buffers;

		/* If we're in abort mode, we just un-journal the buffer and
		   release it for background writing. */
		if (is_journal_aborted(journal)) {
			JBUFFER_TRACE(jh, "journal is aborting: refile");
ERROR-->		journal_refile_buffer(jh);
			/* If that was the last one, we need to clean up
			 * any descriptor buffers which may have been
			 * already allocated, even if we are now
			 * aborting. */
			if (!commit_transaction->t_buffers)
				goto start_journal_io;
			continue;
		}
....
		/* Where is the buffer to be written? */
		err = journal_next_log_block(journal, &blocknr);
		/* If the block mapping failed, just abandon the buffer
		   and repeat this loop: we'll fall into the
		   refile-on-abort condition above. */
		if (err) {
ABORT-->		__journal_abort_hard(journal);
			continue;
		}
...
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:02    [from the cache]
©2003-2008