19 Jan, 2009

1 commit


11 Dec, 2008

1 commit

  • Check for the project ID after attaching all inodes to the transaction.
    That way the unlock in the error case is done by the transaction subsystem,
    which guaratees that is uses the right flags (which was wrong from day one
    of this check), and avoids having special code unlocking an array of inodes
    with potential duplicates. Attaching the inode first is the method used
    by xfs_rename and the other namespace methods all other error that require
    multiple locked inodes.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Dave Chinner
    Signed-off-by: Lachlan McIlroy

    Christoph Hellwig
     

05 Dec, 2008

1 commit

  • When project quota is active and is being used for directory tree
    quota control, we disallow rename outside the current directory
    tree. This requires a check to be made after all the inodes
    involved in the rename are locked. We fail to unlock the inodes
    correctly if we disallow the rename when the target is outside the
    current directory tree. This results in a hang on the next access
    to the inodes involved in failed rename.

    Reported-by: Arkadiusz Miskiewicz
    Signed-off-by: Dave Chinner
    Tested-by: Arkadiusz Miskiewicz
    Signed-off-by: Lachlan McIlroy

    Dave Chinner
     

01 Dec, 2008

1 commit

  • i_gen is incremented in directory operations when the
    directory is changed. It is never read or otherwise used
    so it should be removed to help reduce the size of the
    struct xfs_inode.

    The patch also removes a duplicate logging of the directory
    inode core. We only need to do this once per transaction
    so kill the one associated with the i_gen increment.

    Signed-off-by: Dave Chinner
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Niv Sardi

    Dave Chinner
     

28 Jul, 2008

1 commit

  • As reported by Michael-John Turner XFS updates the mtime on the source
    inode of a rename call in case it's a directory and changes the parent.

    This doesn't make any sense, is not mentioned in the standards and not
    performed by any other Linux filesystems so remove it.

    SGI-PV: 983684

    SGI-Modid: xfs-linux-melb:xfs-kern:31364a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Barry Naujok
    Signed-off-by: Lachlan McIlroy

    Christoph Hellwig
     

29 Apr, 2008

2 commits

  • Similar to to the previous patch for remove and rmdir only grab a
    reference to inodes when we join them to transaction to balance the
    decrement on transaction completion. Everything else it taken care of by
    the VFS.

    Note that the old case had leaks of inode count when src == target or src
    or target == one of the parent inodes, but these cases are fortunately
    already rejected by the VFS.

    SGI-PV: 976035
    SGI-Modid: xfs-linux-melb:xfs-kern:30904a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Lachlan McIlroy

    Christoph Hellwig
     
  • ->rename already gets the target inode passed if it exits. Pass it down to
    xfs_rename so that we can avoid looking it up again. Also simplify locking
    as the first lock section in xfs_rename can go away now: the isdir is an
    invariant over the lifetime of the inode, and new_parent and the nlink
    check are namespace topology protected by i_mutex in the VFS. The projid
    check needs to move into the second lock section anyway to not be racy.

    Also kill the now unused xfs_dir_lookup_int and remove the now-unused
    first_locked argumet to xfs_lock_inodes.

    SGI-PV: 976035
    SGI-Modid: xfs-linux-melb:xfs-kern:30903a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Lachlan McIlroy

    Christoph Hellwig
     

18 Apr, 2008

5 commits


07 Feb, 2008

2 commits

  • These are mostly locking annotations, marking things static, casts where
    needed and declaring stuff in header files.

    SGI-PV: 971186
    SGI-Modid: xfs-linux-melb:xfs-kern:30002a

    Signed-off-by: David Chinner
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Lachlan McIlroy

    David Chinner
     
  • Simplify vnode tracing calls by embedding function name & return addr in
    the calling macro.

    Also do a lot of vnode->inode renaming for consistency, while we're at it.

    SGI-PV: 970335
    SGI-Modid: xfs-linux-melb:xfs-kern:29650a

    Signed-off-by: Eric Sandeen
    Signed-off-by: Lachlan McIlroy
    Signed-off-by: Tim Shimmin

    Lachlan McIlroy
     

16 Oct, 2007

2 commits


15 Oct, 2007

3 commits

  • All vnode ops now take struct xfs_inode pointers and the behaviour related
    glue is split out into methods of it's own. This required fixing
    xfs_create/mkdir/symlink to not mess with the inode pointer but rather use
    a separate boolean for error handling. Thanks to Dave Chinner for that
    fix.

    SGI-PV: 969608
    SGI-Modid: xfs-linux-melb:xfs-kern:29492a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: David Chinner
    Signed-off-by: Tim Shimmin

    Christoph Hellwig
     
  • 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: David Chinner
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Tim Shimmin

    David Chinner
     
  • SGI-PV: 968690
    SGI-Modid: xfs-linux-melb:xfs-kern:29340a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Vlad Apostolov
    Signed-off-by: Tim Shimmin

    Christoph Hellwig
     

08 May, 2007

1 commit


10 Feb, 2007

1 commit

  • The firstblock argument to xfs_bmap_finish is not used by that function.
    Remove it and cleanup the code a bit.

    Patch provided by Eric Sandeen.

    SGI-PV: 960196
    SGI-Modid: xfs-linux-melb:xfs-kern:28034a

    Signed-off-by: Eric Sandeen
    Signed-off-by: David Chinner
    Signed-off-by: Tim Shimmin

    Eric Sandeen
     

20 Jun, 2006

1 commit


09 Jun, 2006

2 commits


08 May, 2006

1 commit


11 Jan, 2006

1 commit


02 Nov, 2005

3 commits


21 Jun, 2005

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds