1. 18 4月, 2008 28 次提交
  2. 10 4月, 2008 1 次提交
  3. 29 2月, 2008 1 次提交
  4. 15 2月, 2008 2 次提交
  5. 07 2月, 2008 8 次提交
    • L
      [XFS] add __init/__exit mark to specific init/cleanup functions · de2eeea6
      Lachlan McIlroy 提交于
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:30459a
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      Signed-off-by: NDenis Cheng <crquan@gmail.com>
      de2eeea6
    • D
      [XFS] Fix oops in xfs_file_readdir() · 450790a2
      David Chinner 提交于
      When xfs_file_readdir() exactly fills a buffer, it can move it's index
      past the end of the buffer and dereference it even though the result of
      the dereference is never used. On some platforms this causes an oops.
      
      SGI-PV: 976923
      SGI-Modid: xfs-linux-melb:xfs-kern:30458a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      450790a2
    • C
      [XFS] kill xfs_root · cbc89dcf
      Christoph Hellwig 提交于
      The only caller (xfs_fs_fill_super) can simplify call igrab on the root
      inode.
      
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:30393a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      cbc89dcf
    • C
      [XFS] keep i_nlink updated and use proper accessors · 4188c78d
      Christoph Hellwig 提交于
      To get the read-only bind mounts in -mm to work correctly with XFS we need
      to call the drop_nlink and inc_nlink helpers to monitor the link count.
      Add calls to these to xfs_bumplink and xfs_droplink and stop copying over
      di_nlink to i_nlink in xfs_validate_fields and vn_revalidate.
      
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:30392a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      4188c78d
    • C
      [XFS] stop updating inode->i_blocks · 222096ae
      Christoph Hellwig 提交于
      The VFS doesn't use i_blocks, it's only used by generic_fillattr and the
      generic quota code which XFS doesn't use. In XFS there is one use to check
      whether we have an inline or out of line sumlink, but we can replace that
      with a check of the XFS_IFINLINE inode flag.
      
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:30391a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      222096ae
    • D
      [XFS] Move AIL pushing into it's own thread · 249a8c11
      David Chinner 提交于
      When many hundreds to thousands of threads all try to do simultaneous
      transactions and the log is in a tail-pushing situation (i.e. full), we
      can get multiple threads walking the AIL list and contending on the AIL
      lock.
      
      The AIL push is, in effect, a simple I/O dispatch algorithm complicated by
      the ordering constraints placed on it by the transaction subsystem. It
      really does not need multiple threads to push on it - even when only a
      single CPU is pushing the AIL, it can push the I/O out far faster that
      pretty much any disk subsystem can handle.
      
      So, to avoid contention problems stemming from multiple list walkers, move
      the list walk off into another thread and simply provide a "target" to
      push to. When a thread requires a push, it sets the target and wakes the
      push thread, then goes to sleep waiting for the required amount of space
      to become available in the log.
      
      This mechanism should also be a lot fairer under heavy load as the waiters
      will queue in arrival order, rather than queuing in "who completed a push
      first" order.
      
      Also, by moving the pushing to a separate thread we can do more
      effectively overload detection and prevention as we can keep context from
      loop iteration to loop iteration. That is, we can push only part of the
      list each loop and not have to loop back to the start of the list every
      time we run. This should also help by reducing the number of items we try
      to lock and/or push items that we cannot move.
      
      Note that this patch is not intended to solve the inefficiencies in the
      AIL structure and the associated issues with extremely large list
      contents. That needs to be addresses separately; parallel access would
      cause problems to any new structure as well, so I'm only aiming to isolate
      the structure from unbounded parallelism here.
      
      SGI-PV: 972759
      SGI-Modid: xfs-linux-melb:xfs-kern:30371a
      Signed-off-by: NDavid Chinner <dgc@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      249a8c11
    • C
      [XFS] use generic_permission · 4576758d
      Christoph Hellwig 提交于
      Now that all direct caller of xfs_iaccess are gone we can kill xfs_iaccess
      and xfs_access and just use generic_permission with a check_acl callback.
      This is required for the per-mount read-only patchset in -mm to work
      properly with XFS.
      
      SGI-PV: 971186
      SGI-Modid: xfs-linux-melb:xfs-kern:30370a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      4576758d
    • C
      [XFS] Cleanup various fid related bits: · f71354bc
      Christoph Hellwig 提交于
      - merge xfs_fid2 into it's only caller xfs_dm_inode_to_fh.
      - remove xfs_vget and opencode it in the two callers, simplifying
        both of them by avoiding the awkward calling convetion.
      - assign directly to the dm_fid_t members in various places in the
        dmapi code instead of casting them to xfs_fid_t first (which
        is identical to dm_fid_t)
      
      SGI-PV: 974747
      SGI-Modid: xfs-linux-melb:xfs-kern:30258a
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NVlad Apostolov <vapo@sgi.com>
      Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
      f71354bc