[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20110503151819.GD6462@thunk.org>
Date: Tue, 3 May 2011 11:18:19 -0400
From: Ted Ts'o <tytso@....edu>
To: Jan Kara <jack@...e.cz>
Cc: linux-ext4@...r.kernel.org
Subject: Re: [PATCH 2/2] ext4: Fix deadlock in ext4_symlink() in ENOSPC
conditions
On Fri, Apr 29, 2011 at 11:24:45PM +0200, Jan Kara wrote:
> ext4_symlink() cannot call __page_symlink() with transaction open.
> __page_symlink() calls ext4_write_begin() which can wait for
> transaction commit if we are running out of space thus causing a
> deadlock. Also error recovery in ext4_truncate_failed_write() does
> not count with the transaction being already started (although I'm
> not aware of any particular deadlock here).
>
> Fix the problem by stopping a transaction before calling __page_symlink()
> (we have to be careful and put inode to orphan list so that it gets deleted
> in case of crash) and starting another one after __page_symlink() returns
> for addition of symlink into a directory.
>
> Signed-off-by: Jan Kara <jack@...e.cz>
Thanks, added to the ext4 tree.
- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists