1. 01 12月, 2008 5 次提交
    • D
      [XFS] fix error inversion problems with data flushing · 2e656092
      Dave Chinner 提交于
      XFS gets the sign of the error wrong in several places when
      gathering the error from generic linux functions. These functions
      return negative error values, while the core XFS code returns
      positive error values. Hence when XFS inverts the error to be
      returned to the VFS, it can incorrectly invert a negative
      error and this error will be ignored by the syscall return.
      
      Fix all the problems related to calling filemap_* functions.
      
      Problem initially identified by Nick Piggin in xfs_fsync().
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NNiv Sardi <xaiki@sgi.com>
      2e656092
    • C
      [XFS] fix spurious gcc warnings · 65795910
      Christoph Hellwig 提交于
      Some recent gcc warnings don't like passing string variables to
      printf-like functions without using at least a "%s" format string.
      Change the two occurances of that in xfs to please gcc.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: NNiv Sardi <xaiki@sgi.com>
      65795910
    • C
      [XFS] allow inode64 mount option on 32 bit systems · 6c31b93a
      Christoph Hellwig 提交于
      Now that we've stopped using the Linux inode cache when can trivally
      support the inode64 mount option on 32bit architectures.  As far as the
      kernel and most userspace is concerned this works perfectly, but
      applications still using really old stat and readdir interfaces will get
      an EOVERFLOW error when hitting an inode number not fitting into 32
      bits (that problem of course also exists when using these applications
      on a 64bit kernel).
      
      Note that because inode64 is simply a mount option we can currently
      mount a filesystem having > 32 bit inode numbers and cause a variety of
      problems, all this is solved but this patch which enables XFS_BIG_INUMS,
      even when inode64 is not used.
      
      (First sent on October 18th)
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NDave Chinner <david@fromorbit.com>
      Signed-off-by: NNiv Sardi <xaiki@sgi.com>
      6c31b93a
    • C
      [XFS] wire up ->open for directories · f999a5bf
      Christoph Hellwig 提交于
      Currently there's no ->open method set for directories on XFS.  That
      means we don't perform any check for opening too large directories
      without O_LARGEFILE, we don't check for shut down filesystems, and we
      don't actually do the readahead for the first block in the directory.
      
      Instead of just setting the directories open routine to xfs_file_open
      we merge the shutdown check directly into xfs_file_open and create
      a new xfs_dir_open that first calls xfs_file_open and then performs
      the readahead for block 0.
      
      (First sent on September 29th)
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NDave Chinner <david@fromorbit.com>
      Signed-off-by: NNiv Sardi <xaiki@sgi.com>
      f999a5bf
    • C
      [XFS] fix NULL pointer dereference in xfs_log_force_umount · bac8dca9
      Christoph Hellwig 提交于
      xfs_log_force_umount may be called very early during log recovery where
      
      If we fail a buffer read in xlog_recover_do_inode_trans we abort the mount.
      But at that point log recovery has started delayed writeback of inode
      buffers.   As part of the aborted mount we try to flush out all delwri
      buffers, but at that point we have already freed the superblock, and set
      mp->m_sb_bp to NULL, and xfs_log_force_umount which gets called after
      the inode buffer writeback trips over it.
      
      Make xfs_log_force_umount a little more careful when accessing mp->m_sb_bp
      to avoid this.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: NNiv Sardi <xaiki@sgi.com>
      bac8dca9
  2. 28 11月, 2008 1 次提交
  3. 21 11月, 2008 25 次提交
  4. 20 11月, 2008 9 次提交