1. 14 7月, 2007 5 次提交
    • D
      [XFS] Concurrent Multi-File Data Streams · 2a82b8be
      David Chinner 提交于
      In media spaces, video is often stored in a frame-per-file format. When
      dealing with uncompressed realtime HD video streams in this format, it is
      crucial that files do not get fragmented and that multiple files a placed
      contiguously on disk.
      
      When multiple streams are being ingested and played out at the same time,
      it is critical that the filesystem does not cross the streams and
      interleave them together as this creates seek and readahead cache miss
      latency and prevents both ingest and playout from meeting frame rate
      targets.
      
      This patch set creates a "stream of files" concept into the allocator to
      place all the data from a single stream contiguously on disk so that RAID
      array readahead can be used effectively. Each additional stream gets
      placed in different allocation groups within the filesystem, thereby
      ensuring that we don't cross any streams. When an AG fills up, we select a
      new AG for the stream that is not in use.
      
      The core of the functionality is the stream tracking - each inode that we
      create in a directory needs to be associated with the directories' stream.
      Hence every time we create a file, we look up the directories' stream
      object and associate the new file with that object.
      
      Once we have a stream object for a file, we use the AG that the stream
      object point to for allocations. If we can't allocate in that AG (e.g. it
      is full) we move the entire stream to another AG. Other inodes in the same
      stream are moved to the new AG on their next allocation (i.e. lazy
      update).
      
      Stream objects are kept in a cache and hold a reference on the inode.
      Hence the inode cannot be reclaimed while there is an outstanding stream
      reference. This means that on unlink we need to remove the stream
      association and we also need to flush all the associations on certain
      events that want to reclaim all unreferenced inodes (e.g. filesystem
      freeze).
      
      SGI-PV: 964469
      SGI-Modid: xfs-linux-melb:xfs-kern:29096a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: NDonald Douwsma <donaldd@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      Signed-off-by: NVlad Apostolov <vapo@sgi.com>
      2a82b8be
    • C
      [XFS] XFS should not be looking at filp reference counts · fbf3ce8d
      Christoph Hellwig 提交于
      A check for file_count is always a bad idea. Linux has the ->release
      method to deal with cleanups on last close and ->flush is only for the
      very rare case where we want to perform an operation on every drop of a
      reference to a file struct.
      
      This patch gets rid of vop_close and surrounding code in favour of simply
      doing the page flushing from ->release.
      
      SGI-PV: 966562
      SGI-Modid: xfs-linux-melb:xfs-kern:28952a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      fbf3ce8d
    • J
      [XFS] Cancel transactions on xfs_itruncate_start error. · 87ae3c24
      Jesper Juhl 提交于
      SGI-PV: 966502
      SGI-Modid: xfs-linux-melb:xfs-kern:28943a
      Signed-off-by: NJesper Juhl <jesper.juhl@gmail.com>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      87ae3c24
    • D
      [XFS] Cleanup inode extent size hint extraction · 957d0ebe
      David Chinner 提交于
      SGI-PV: 966004
      SGI-Modid: xfs-linux-melb:xfs-kern:28866a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      957d0ebe
    • D
      [XFS] Make hole punching at EOF atomic. · 92dfe8d2
      David Chinner 提交于
      If hole punching at EOF is done as two steps (i.e. truncate then extend)
      the file is in a transient state between the two steps where an
      application can see the incorrect file size. Punching a hole to EOF needs
      to be treated in teh same way as all other hole punching cases so that the
      file size is never seen to change.
      
      SGI-PV: 962012
      SGI-Modid: xfs-linux-melb:xfs-kern:28641a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NVlad Apostolov <vapo@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      92dfe8d2
  2. 10 7月, 2007 1 次提交
  3. 08 5月, 2007 6 次提交
  4. 10 2月, 2007 2 次提交
  5. 11 11月, 2006 3 次提交
  6. 28 9月, 2006 3 次提交
  7. 27 6月, 2006 1 次提交
  8. 20 6月, 2006 1 次提交
  9. 09 6月, 2006 7 次提交
  10. 08 5月, 2006 1 次提交
  11. 31 3月, 2006 1 次提交
  12. 29 3月, 2006 1 次提交
  13. 24 3月, 2006 1 次提交
  14. 22 3月, 2006 2 次提交
  15. 17 3月, 2006 1 次提交
  16. 15 1月, 2006 1 次提交
  17. 12 1月, 2006 1 次提交
  18. 11 1月, 2006 2 次提交