1. 18 4月, 2008 6 次提交
  2. 10 4月, 2008 1 次提交
  3. 29 2月, 2008 1 次提交
  4. 07 2月, 2008 13 次提交
  5. 19 10月, 2007 1 次提交
    • C
      [XFS] cleanup fid types mess · c6143911
      Christoph Hellwig 提交于
      Currently XFs has three different fid types: struct fid, struct xfs_fid
      and struct xfs_fid2 with hte latter two beeing identicaly and the first
      one beeing the same size but an unstructured array with the same size.
      
      This patch consolidates all this to alway uuse struct xfs_fid.
      
      This patch is required for an upcoming patch series from me that revamps
      the nfs exporting code and introduces a Linux-wide struct fid.
      
      SGI-PV: 970336
      SGI-Modid: xfs-linux-melb:xfs-kern:29651a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      c6143911
  6. 16 10月, 2007 11 次提交
  7. 15 10月, 2007 5 次提交
    • V
      [XFS] do not have XFSMNT_IDELETE as default when mounted with XFSMNT_DMAPI · b93bd20c
      Vlad Apostolov 提交于
      XFS inodes are dynamically allocated on demand, rather than being
      allocated at mkfs time. Chunks of 64 inodes are allocated at once, but
      they are never freed. Over time, this can lead to filesystem
      fragmentation, clusters of inodes and the btrees which point at them can
      be scattered around the system.
      
      By freeing clusters as they are emptied, we will reduce fragmentation of
      the free space after removing files. This in turn will allow us to make
      better placement decisions when repopulating a filesystem. The
      XFSMNT_IDELETE mount option enables freeing clusters when they get empty.
      
      Unfortunately a side effect of freeing inode clusters is that the inode
      generation numbers of such inodes would be reset to zero when the cluster
      is reclaimed. This is a problem in particular for a DMAPI enabled
      filesystem as the the DMAPI handles need to be unique and persistent in
      time. An unique DMAPI handle is built with the help of the inode
      generation number. When the last one is prematurely reset by an inode
      cluster reclaim, there is a high probability of different generation
      inodes to end up having identical DMAPI handles.
      
      To avoid the problem with identical DMAPI handles, the XFSMNT_IDELETE
      mount option should be set as default, only if the filesystem is not
      mounted with XFSMNT_DMAPI.
      
      SGI-PV: 969192
      SGI-Modid: xfs-linux-melb:xfs-kern:29486a
      Signed-off-by: NVlad Apostolov <vapo@sgi.com>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NMark Goodwin <markgw@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      b93bd20c
    • D
      [XFS] Radix tree based inode caching · da353b0d
      David Chinner 提交于
      One of the perpetual scaling problems XFS has is indexing it's incore
      inodes. We currently uses hashes and the default hash sizes chosen can
      only ever be a tradeoff between memory consumption and the maximum
      realistic size of the cache.
      
      As a result, anyone who has millions of inodes cached on a filesystem
      needs to tunes the size of the cache via the ihashsize mount option to
      allow decent scalability with inode cache operations.
      
      A further problem is the separate inode cluster hash, whose size is based
      on the ihashsize but is smaller, and so under certain conditions (sparse
      cluster cache population) this can become a limitation long before the
      inode hash is causing issues.
      
      The following patchset removes the inode hash and cluster hash and
      replaces them with radix trees to avoid the scalability limitations of the
      hashes. It also reduces the size of the inodes by 3 pointers....
      
      SGI-PV: 969561
      SGI-Modid: xfs-linux-melb:xfs-kern:29481a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      da353b0d
    • E
      [XFS] optimize dmapi event tests w/o dmapi config · 948c6d4f
      Eric Sandeen 提交于
      SGI-PV: 969372
      SGI-Modid: xfs-linux-melb:xfs-kern:29444a
      Signed-off-by: NEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: NVlad Apostolov <vapo@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      948c6d4f
    • J
      [XFS] Fix a potential NULL pointer deref in XFS on failed mount. · 49ee6c91
      Jesper Juhl 提交于
      If we fail to open the the log device buftarg, we can fall through to
      error handling code that fails to check for a NULL log device buftarg
      before calling xfs_free_buftarg().
      
      This patch fixes the issue by checking mp->m_logdev_targp against NULL in
      xfs_unmountfs_close() and doing the proper xfs_blkdev_put(logdev); and
      xfs_blkdev_put(rtdev); on (!mp->m_rtdev_targp) in xfs_mount().
      
      Discovered by the Coverity checker.
      
      SGI-PV: 968563
      SGI-Modid: xfs-linux-melb:xfs-kern:29328a
      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>
      49ee6c91
    • E
      [XFS] clean up xfs_start_flags · dcb3b83f
      Eric Sandeen 提交于
      xfs_start_flags can make use of is_power_of_2 to tidy up the test a little
      bit.
      
      SGI-PV: 968563
      SGI-Modid: xfs-linux-melb:xfs-kern:29327a
      Signed-off-by: NEric Sandeen <sandeen@sandeen.net>
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      dcb3b83f
  8. 14 7月, 2007 2 次提交
    • 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
    • D
      [XFS] Fix remount,readonly path to flush everything correctly. · 516b2e7c
      David Chinner 提交于
      The remount readonly path can fail to writeback properly because we still
      have active transactions after calling xfs_quiesce_fs(). Further
      investigation shows that this path is broken in the same ways that the xfs
      freeze path was broken so fix it the same way.
      
      SGI-PV: 964464
      SGI-Modid: xfs-linux-melb:xfs-kern:28869a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NTim Shimmin <tes@sgi.com>
      516b2e7c