1. 29 Apr, 2011 1 commit
    • Jan Kara's avatar
      ext3: Fix lock inversion in ext3_symlink() · ae54870a
      Jan Kara authored
      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: default avatarJan Kara <jack@suse.cz>
      ae54870a
  2. 28 Apr, 2011 15 commits
  3. 27 Apr, 2011 15 commits
  4. 26 Apr, 2011 9 commits