summaryrefslogtreecommitdiffstats
path: root/fs/xfs/libxfs/xfs_symlink_remote.c
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2015-01-21 23:30:06 +0100
committerDave Chinner <david@fromorbit.com>2015-01-21 23:30:06 +0100
commitfe22d552b82d7cc7de1851233ae8bef579198637 (patch)
tree106482e8bd9a8567a0754c59d5fc38d3cb9a577b /fs/xfs/libxfs/xfs_symlink_remote.c
parentxfs: inode unlink does not set AGI buffer type (diff)
downloadlinux-fe22d552b82d7cc7de1851233ae8bef579198637.tar.xz
linux-fe22d552b82d7cc7de1851233ae8bef579198637.zip
xfs: set buf types when converting extent formats
Conversion from local to extent format does not set the buffer type correctly on the new extent buffer when a symlink data is moved out of line. Fix the symlink code and leave a comment in the generic bmap code reminding us that the format-specific data copy needs to set the destination buffer type appropriately. cc: <stable@vger.kernel.org> # 3.10 to current Tested-by: Jan Kara <jack@suse.cz> Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/libxfs/xfs_symlink_remote.c')
-rw-r--r--fs/xfs/libxfs/xfs_symlink_remote.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/xfs/libxfs/xfs_symlink_remote.c b/fs/xfs/libxfs/xfs_symlink_remote.c
index c80c5236c3da..e7e26bd6468f 100644
--- a/fs/xfs/libxfs/xfs_symlink_remote.c
+++ b/fs/xfs/libxfs/xfs_symlink_remote.c
@@ -178,6 +178,8 @@ xfs_symlink_local_to_remote(
struct xfs_mount *mp = ip->i_mount;
char *buf;
+ xfs_trans_buf_set_type(tp, bp, XFS_BLFT_SYMLINK_BUF);
+
if (!xfs_sb_version_hascrc(&mp->m_sb)) {
bp->b_ops = NULL;
memcpy(bp->b_addr, ifp->if_u1.if_data, ifp->if_bytes);