1. 29 Apr, 2012 3 commits
  2. 21 Feb, 2012 1 commit
  3. 09 Jan, 2012 1 commit
    • Al Viro's avatar
      ext[34]: avoid i_nlink warnings triggered by drop_nlink/inc_nlink kludge in symlink() · 0ce8c010
      Al Viro authored
      
      
      Both ext3 and ext4 put the half-created symlink inode into the orphan list
      for a while (see the comment in ext[34]_symlink() for gory details).  Then,
      if everything went fine, they pull it out of the orphan list and bump the
      link count back to 1.  The thing is, inc_nlink() is going to complain about
      seeing somebody changing i_nlink from 0 to 1.  With a good reason, since
      normally something like that is a bug.  Explicit set_nlink(inode, 1) does
      the same thing as inc_nlink() here, but it does *not* complain - exactly
      because it should be usable in strange situations like this one.
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      0ce8c010
  4. 04 Jan, 2012 3 commits
  5. 02 Nov, 2011 2 commits
  6. 29 Oct, 2011 1 commit
  7. 26 Oct, 2011 1 commit
  8. 31 Aug, 2011 3 commits
  9. 23 Aug, 2011 2 commits
  10. 12 Aug, 2011 1 commit
  11. 25 Jul, 2011 1 commit
  12. 20 Jul, 2011 1 commit
  13. 16 Jul, 2011 1 commit
  14. 11 Jul, 2011 1 commit
    • Lukas Czerner's avatar
      ext4: remove unnecessary comments in ext4_orphan_add() · afb86178
      Lukas Czerner authored
      
      
      The comment from Al Viro about possible race in the ext4_orphan_add() is
      not justified. There is no race possible as we always have either i_mutex
      locked, or the inode can not be referenced from outside hence the
      J_ASSERS should not be hit from the reason described in comment.
      
      This commit replaces it with notion that we are holding i_mutex so it
      should not be possible for i_nlink to be changed while waiting for
      s_orphan_lock.
      
      Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      afb86178
  15. 26 May, 2011 3 commits
  16. 15 May, 2011 1 commit
  17. 03 May, 2011 2 commits
    • Jan Kara's avatar
      ext4: fix deadlock in ext4_symlink() in ENOSPC conditions · df5e6223
      Jan Kara authored
      
      
      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: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      df5e6223
    • Jan Kara's avatar
      ext4: Fix fs corruption when make_indexed_dir() fails · 7ad8e4e6
      Jan Kara authored
      
      
      When make_indexed_dir() fails (e.g. because of ENOSPC) after it has
      allocated block for index tree root, we did not properly mark all
      changed buffers dirty.  This lead to only some of these buffers being
      written out and thus effectively corrupting the directory.
      
      Fix the issue by marking all changed data dirty even in the error
      failure case.
      
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      7ad8e4e6
  18. 22 Mar, 2011 1 commit
  19. 21 Mar, 2011 1 commit
  20. 15 Mar, 2011 1 commit
  21. 10 Jan, 2011 3 commits
  22. 20 Dec, 2010 2 commits
  23. 15 Dec, 2010 1 commit
  24. 28 Oct, 2010 2 commits
    • Theodore Ts'o's avatar
      ext4: use search_dirblock() in ext4_dx_find_entry() · 7845c049
      Theodore Ts'o authored
      
      
      Use the search_dirblock() in ext4_dx_find_entry().  It makes the code
      easier to read, and it takes advantage of common code.  It also saves
      100 bytes or so of text space.
      
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Cc: Brad Spengler <spender@grsecurity.net>
      7845c049
    • Theodore Ts'o's avatar
      ext4: avoid uninitialized memory references in ext3_htree_next_block() · 8941ec8b
      Theodore Ts'o authored
      
      
      If the first block of htree directory is missing '.' or '..' but is
      otherwise a valid directory, and we do a lookup for '.' or '..', it's
      possible to dereference an uninitialized memory pointer in
      ext4_htree_next_block().
      
      We avoid this by moving the special case from ext4_dx_find_entry() to
      ext4_find_entry(); this also means we can optimize ext4_find_entry()
      slightly when NFS looks up "..".
      
      Thanks to Brad Spengler for pointing a Clang warning that led me to
      look more closely at this code.  The warning was harmless, but it was
      useful in pointing out code that was too ugly to live.  This warning was
      also reported by Roman Borisov.
      
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Cc: Brad Spengler <spender@grsecurity.net>
      8941ec8b
  25. 26 Oct, 2010 1 commit