1. 28 7月, 2008 34 次提交
  2. 27 7月, 2008 4 次提交
  3. 23 5月, 2008 2 次提交
    • C
      [XFS] Fix memory corruption with small buffer reads · 6ab455ee
      Christoph Hellwig 提交于
      When we have multiple buffers in a single page for a blocksize == pagesize
      filesystem we might overwrite the page contents if two callers hit it
      shortly after each other. To prevent that we need to keep the page locked
      until I/O is completed and the page marked uptodate.
      
      Thanks to Eric Sandeen for triaging this bug and finding a reproducible
      testcase and Dave Chinner for additional advice.
      
      This should fix kernel.org bz #10421.
      Tested-by: NEric Sandeen <sandeen@sandeen.net>
      
      SGI-PV: 981813
      SGI-Modid: xfs-linux-melb:xfs-kern:31173a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      6ab455ee
    • D
      [XFS] Fix fsync() b0rkage. · 978b7237
      David Chinner 提交于
      xfs_fsync() fails to wait for data I/O completion before checking if the
      inode is dirty or clean to decide whether to log the inode or not. This
      misses inode size updates when the data flushed by the fsync() is
      extending the file.
      
      Hence, like fdatasync(), we need to wait for I/o completion first, then
      check the inode for cleanliness. Doing so makes the behaviour of
      xfs_fsync() identical for fsync and fdatasync and we *always* use
      synchronous semantics if the inode is dirty. Therefore also kill the
      differences and remove the unused flags from the xfs_fsync function and
      callers.
      
      SGI-PV: 981296
      SGI-Modid: xfs-linux-melb:xfs-kern:31033a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      978b7237