From: Jan Kara Date: Thu, 21 Apr 2011 21:47:16 +0000 (+0200) Subject: ext3: Fix lock inversion in ext3_symlink() X-Git-Tag: v3.0-rc1~307^2~6 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae54870a1dc978a88377ae8af0780648f2ccd4dc;p=pandora-kernel.git ext3: Fix lock inversion in ext3_symlink() ext3_symlink() cannot call __page_symlink() with transaction open. __page_symlink() calls ext3_write_begin() which gets page lock which ranks above transaction start (thus lock ordering is violated) and and also ext3_write_begin() waits for a transaction commit when we run out of space which never happens if we hold transaction open. 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 --- Reading git-diff-tree failed