xfs: factor out a helper to initialize a local format inode fork
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:

committed by
Dave Chinner

parent
f55532a0c0
commit
143f4aede7
@@ -302,19 +302,11 @@ xfs_symlink(
|
||||
* If the symlink will fit into the inode, write it inline.
|
||||
*/
|
||||
if (pathlen <= XFS_IFORK_DSIZE(ip)) {
|
||||
xfs_idata_realloc(ip, pathlen, XFS_DATA_FORK);
|
||||
memcpy(ip->i_df.if_u1.if_data, target_path, pathlen);
|
||||
xfs_init_local_fork(ip, XFS_DATA_FORK, target_path, pathlen);
|
||||
|
||||
ip->i_d.di_size = pathlen;
|
||||
|
||||
/*
|
||||
* The inode was initially created in extent format.
|
||||
*/
|
||||
ip->i_df.if_flags &= ~(XFS_IFEXTENTS | XFS_IFBROOT);
|
||||
ip->i_df.if_flags |= XFS_IFINLINE;
|
||||
|
||||
ip->i_d.di_format = XFS_DINODE_FMT_LOCAL;
|
||||
xfs_trans_log_inode(tp, ip, XFS_ILOG_DDATA | XFS_ILOG_CORE);
|
||||
|
||||
} else {
|
||||
int offset;
|
||||
|
||||
|
Reference in New Issue
Block a user