01 Dec, 2008

1 commit


17 Nov, 2008

1 commit

  • When an I/O error occurs during an intermediate commit on a rolling
    transaction, xfs_trans_commit() will free the transaction structure
    and the related ticket. However, the duplicate transaction that
    gets used as the transaction continues still contains a pointer
    to the ticket. Hence when the duplicate transaction is cancelled
    and freed, we free the ticket a second time.

    Add reference counting to the ticket so that we hold an extra
    reference to the ticket over the transaction commit. We drop the
    extra reference once we have checked that the transaction commit
    did not return an error, thus avoiding a double free on commit
    error.

    Credit to Nick Piggin for tripping over the problem.

    SGI-PV: 989741

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

    Dave Chinner
     

13 Aug, 2008

1 commit

  • In several places we directly convert from the XFS inode
    to the linux (VFS) inode by a simple deference of ip->i_vnode.
    We should not do this - a helper function should be used to
    extract the VFS inode from the XFS inode.

    Introduce the function VFS_I() to extract the VFS inode
    from the XFS inode. The name was chosen to match XFS_I() which
    is used to extract the XFS inode from the VFS inode.

    SGI-PV: 981498

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

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

    David Chinner
     

29 Apr, 2008

2 commits

  • ->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
     
  • The writer field is not needed for non_DEBU builds so remove it. While
    we're at i also clean up the interface for is locked asserts to go through
    and xfs_iget.c helper with an interface like the xfs_ilock routines to
    isolated the XFS codebase from mrlock internals. That way we can kill
    mrlock_t entirely once rw_semaphores grow an islocked facility. Also
    remove unused flags to the ilock family of functions.

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

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

    Christoph Hellwig
     

18 Apr, 2008

2 commits

  • SGI-PV: 976035
    SGI-Modid: xfs-linux-melb:xfs-kern:30804a

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

    Barry Naujok
     
  • Instead of of xfs_get_dir_entry use a macro to get the xfs_inode from the
    dentry in the callers and grab the reference manually.

    Only grab the reference once as it's fine to keep it over the dmapi calls.
    (And even that reference is actually superflous in Linux but I'll leave
    that for another patch)

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

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

    Christoph Hellwig
     

10 Apr, 2008

1 commit


07 Feb, 2008

3 commits

  • 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: Christoph Hellwig
    Signed-off-by: Lachlan McIlroy

    Christoph Hellwig
     
  • Un-obfuscate XFS_SB_LOCK, remove XFS_SB_LOCK->mutex_lock->spin_lock
    macros, call spin_lock directly, remove extraneous cookie holdover from
    old xfs code, and change lock type to spinlock_t.

    SGI-PV: 970382
    SGI-Modid: xfs-linux-melb:xfs-kern:29746a

    Signed-off-by: Eric Sandeen
    Signed-off-by: Donald Douwsma
    Signed-off-by: Tim Shimmin

    Eric Sandeen
     
  • 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

1 commit

  • struct bhv_vnode is on it's way out, so move the trace buffer to the XFS
    inode. Note that this makes the tracing macros rather misnamed, but this
    kind of fallout will be fixed up incrementally later on.

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

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

    Christoph Hellwig
     

15 Oct, 2007

1 commit

  • 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
     

08 May, 2007

2 commits


20 Jun, 2006

1 commit


09 Jun, 2006

2 commits