1. 01 11月, 2014 1 次提交
  2. 09 8月, 2014 2 次提交
  3. 07 5月, 2014 5 次提交
  4. 26 1月, 2014 1 次提交
  5. 09 8月, 2013 1 次提交
  6. 29 6月, 2013 2 次提交
  7. 01 6月, 2013 1 次提交
    • J
      reiserfs: fix problems with chowning setuid file w/ xattrs · 4a857011
      Jeff Mahoney 提交于
      reiserfs_chown_xattrs() takes the iattr struct passed into ->setattr
      and uses it to iterate over all the attrs associated with a file to change
      ownership of xattrs (and transfer quota associated with the xattr files).
      
      When the setuid bit is cleared during chown, ATTR_MODE and iattr->ia_mode
      are passed to all the xattrs as well. This means that the xattr directory
      will have S_IFREG added to its mode bits.
      
      This has been prevented in practice by a missing IS_PRIVATE check
      in reiserfs_acl_chmod, which caused a double-lock to occur while holding
      the write lock. Since the file system was completely locked up, the
      writeout of the corrupted mode never happened.
      
      This patch temporarily clears everything but ATTR_UID|ATTR_GID for the
      calls to reiserfs_setattr and adds the missing IS_PRIVATE check.
      Signed-off-by: NJeff Mahoney <jeffm@suse.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      4a857011
  8. 30 3月, 2013 1 次提交
  9. 04 9月, 2012 1 次提交
  10. 14 7月, 2012 2 次提交
  11. 21 3月, 2012 3 次提交
  12. 04 1月, 2012 1 次提交
  13. 26 7月, 2011 2 次提交
  14. 21 7月, 2011 1 次提交
    • C
      fs: kill i_alloc_sem · bd5fe6c5
      Christoph Hellwig 提交于
      i_alloc_sem is a rather special rw_semaphore.  It's the last one that may
      be released by a non-owner, and it's write side is always mirrored by
      real exclusion.  It's intended use it to wait for all pending direct I/O
      requests to finish before starting a truncate.
      
      Replace it with a hand-grown construct:
      
       - exclusion for truncates is already guaranteed by i_mutex, so it can
         simply fall way
       - the reader side is replaced by an i_dio_count member in struct inode
         that counts the number of pending direct I/O requests.  Truncate can't
         proceed as long as it's non-zero
       - when i_dio_count reaches non-zero we wake up a pending truncate using
         wake_up_bit on a new bit in i_flags
       - new references to i_dio_count can't appear while we are waiting for
         it to read zero because the direct I/O count always needs i_mutex
         (or an equivalent like XFS's i_iolock) for starting a new operation.
      
      This scheme is much simpler, and saves the space of a spinlock_t and a
      struct list_head in struct inode (typically 160 bits on a non-debug 64-bit
      system).
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      bd5fe6c5
  15. 20 7月, 2011 5 次提交
  16. 20 6月, 2011 1 次提交
  17. 28 5月, 2011 1 次提交
  18. 26 5月, 2011 1 次提交
  19. 31 3月, 2011 1 次提交
  20. 10 3月, 2011 1 次提交
  21. 07 1月, 2011 3 次提交
  22. 26 10月, 2010 2 次提交
  23. 22 5月, 2010 1 次提交