09 Oct, 2013

1 commit

  • Push down the transaction management for remote symlinks from
    xfs_inactive() down to xfs_inactive_symlink_rmt(). The latter is
    cleaned up to avoid transaction management intended for the
    calling context (i.e., trans duplication, reservation, item
    attachment).

    Signed-off-by: Brian Foster
    Reviewed-by: Dave Chinner
    Signed-off-by: Ben Myers

    Brian Foster
     

13 Aug, 2013

2 commits

  • The remote symlink format definition and manipulation needs to be
    shared with userspace, but the in-kernel interfaces do not. Split
    the remote symlink format handling out into xfs_symlink_remote.[ch]
    fo it can easily be shared with userspace.

    Signed-off-by: Dave Chinner
    Reviewed-by: Mark Tinguely
    Signed-off-by: Ben Myers

    Dave Chinner
     
  • Little things like exported functions, __KERNEL__ protections, and
    so on that ensure user and kernel shared headers are identical.

    Signed-off-by: Dave Chinner
    Reviewed-by: Brian Foster
    Reviewed-by: Mark Tinguely
    Signed-off-by: Ben Myers

    Dave Chinner
     

20 Jun, 2013

1 commit

  • Adding an extended attribute to a symbolic link can force that
    link to an remote extent. xfs_inactive() incorrectly assumes
    that any symbolic link small enough to be in the inode core
    is incore, resulting in the remote extent to not be removed.
    xfs_ifree() will assert on presence of this leaked remote extent.

    Signed-off-by: Mark Tinguely
    Reviewed-by: Ben Myers
    Signed-off-by: Ben Myers

    Mark Tinguely
     

28 Apr, 2013

1 commit

  • Add a header to the remote symlink block, containing location and
    owner information, as well as CRCs and LSN fields. This requires
    verifiers to be added to the remote symlink buffers for CRC enabled
    filesystems.

    This also fixes a bug reading multiple block symlinks, where the second
    block overwrites the first block when copying out the link name.

    Signed-off-by: Dave Chinner
    Reviewed-by: Ben Myers
    Signed-off-by: Ben Myers

    Dave Chinner
     

22 Apr, 2013

1 commit

  • The symlink code is about to get more complicated when CRCs are
    added for remote symlink blocks. The symlink management code is
    mostly self contained, so move it to it's own files so that all the
    new code and the existing symlink code will not be intermingled
    with other unrelated code.

    Signed-off-by: Dave Chinner
    Reviewed-by: Ben Myers
    Signed-off-by: Ben Myers

    Dave Chinner