• Darrick J. Wong's avatar
    xfs: split xfs_bmap_add_attrfork into two pieces · 55edcd1f
    Darrick J. Wong authored
    Split this function into two pieces -- one to make the actual changes to
    the inode core to add the attr fork, and another one to deal with
    getting the transaction and locking the inodes.
    
    The next couple of patches will need this to be split into two.  One
    patch implements committing new parent pointer recordsets to damaged
    files.  If one file has an attr fork and the other does not, we have to
    create the missing attr fork before the atomic swap transaction, and can
    use the behavior encoded in the current xfs_bmap_add_attrfork.
    
    The second patch adapts /lost+found adoptions to handle parent pointers
    correctly.  The adoption process will add a parent pointer to a child
    that is being moved to /lost+found, but this requires that the attr fork
    already exists.  We don't know if we're actually going to commit the
    adoption until we've already reserved a transaction and taken the
    ILOCKs, which means that we must have a way to bypass the start of the
    current xfs_bmap_add_attrfork.
    
    Therefore, create xfs_attr_add_fork as the helper that creates a
    transaction and takes locks; and make xfs_bmap_add_attrfork the function
    that updates the inode core and allocates the incore attr fork.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    55edcd1f
xfs_bmap.c 170 KB