1. 13 8月, 2008 2 次提交
  2. 28 7月, 2008 2 次提交
    • E
      [XFS] Pack some shortform dir2 structures for the ARM old ABI · ae23a5e8
      Eric Sandeen 提交于
      architecture.
      
      This should fix the longstanding issues with xfs and old ABI arm boxes,
      which lead to various asserts and xfs shutdowns, and for which an
      (incorrect) patch has been floating around for years.
      
      I've verified this patch by comparing the on-disk structure layouts using
      pahole from the dwarves package, as well as running through a bit of xfsqa
      under qemu-arm, modified so that the check/repair phase after each test
      actually executes check/repair from the x86 host, on the filesystem
      populated by the arm emulator. Thus far it all looks good.
      
      There are 2 other structures with extra padding at the end, but they don't
      seem to cause trouble. I suppose they could be packed as well:
      xfs_dir2_data_unused_t and xfs_dir2_sf_t.
      
      Note that userspace needs a similar treatment, and any filesystems which
      were running with the previous rogue "fix" will now see corruption (either
      in the kernel, or during xfs_repair) with this fix properly in place; it
      may be worth teaching xfs_repair to identify and fix that specific issue.
      
      SGI-PV: 982930
      
      SGI-Modid: xfs-linux-melb:xfs-kern:31280a
      Signed-off-by: NEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      ae23a5e8
    • B
      [XFS] XFS: ASCII case-insensitive support · 189f4bf2
      Barry Naujok 提交于
      Implement ASCII case-insensitive support. It's primary purpose is for
      supporting existing filesystems that already use this case-insensitive
      mode migrated from IRIX. But, if you only need ASCII-only case-insensitive
      support (ie. English only) and will never use another language, then this
      mode is perfectly adequate.
      
      ASCII-CI is implemented by generating hashes based on lower-case letters
      and doing lower-case compares. It implements a new xfs_nameops vector for
      doing the hashes and comparisons for all filename operations.
      
      To create a filesystem with this CI mode, use: # mkfs.xfs -n version=ci
      <device>
      
      SGI-PV: 981516
      SGI-Modid: xfs-linux-melb:xfs-kern:31209a
      Signed-off-by: NBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      189f4bf2
  3. 30 4月, 2008 2 次提交
  4. 29 4月, 2008 1 次提交
  5. 18 4月, 2008 1 次提交
  6. 07 2月, 2008 3 次提交
  7. 16 10月, 2007 1 次提交
  8. 15 10月, 2007 2 次提交
  9. 14 7月, 2007 1 次提交
    • 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
  10. 10 7月, 2007 1 次提交
  11. 13 2月, 2007 1 次提交
  12. 28 9月, 2006 2 次提交
  13. 11 7月, 2006 1 次提交
  14. 01 7月, 2006 1 次提交
  15. 27 6月, 2006 1 次提交
  16. 20 6月, 2006 1 次提交
  17. 09 6月, 2006 2 次提交
  18. 31 3月, 2006 1 次提交
  19. 17 3月, 2006 1 次提交
  20. 14 3月, 2006 4 次提交
  21. 11 1月, 2006 2 次提交
  22. 09 11月, 2005 1 次提交
    • O
      [PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reason · 733482e4
      Olaf Hering 提交于
      This patch removes almost all inclusions of linux/version.h.  The 3
      #defines are unused in most of the touched files.
      
      A few drivers use the simple KERNEL_VERSION(a,b,c) macro, which is
      unfortunatly in linux/version.h.
      
      There are also lots of #ifdef for long obsolete kernels, this was not
      touched.  In a few places, the linux/version.h include was move to where
      the LINUX_VERSION_CODE was used.
      
      quilt vi `find * -type f -name "*.[ch]"|xargs grep -El '(UTS_RELEASE|LINUX_VERSION_CODE|KERNEL_VERSION|linux/version.h)'|grep -Ev '(/(boot|coda|drm)/|~$)'`
      
      search pattern:
      /UTS_RELEASE\|LINUX_VERSION_CODE\|KERNEL_VERSION\|linux\/\(utsname\|version\).h
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      733482e4
  23. 02 11月, 2005 4 次提交
  24. 05 9月, 2005 1 次提交
  25. 02 9月, 2005 1 次提交