Andrew, Fixed both comments from Al Viro (thanks, Al): - should have a separate helper - should pass 0 instead of GFP_KERNEL in page_symlink() This patch fixes illegal __GFP_FS allocation inside ext3 transaction in ext3_symlink(). Such allocation may re-enter ext3 code from try_to_free_pages. But JBD/ext3 code keeps a pointer to current journal handle in task_struct and, hence, is not reentrable. This bug led to "Assertion failure in journal_dirty_metadata()" messages. http://bugzilla.openvz.org/show_bug.cgi?id=115 Signed-Off-By: Andrey Savochkin Signed-Off-By: Kirill Korotaev Thanks, Kirill P.S. against 2.6.16-rc5