Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87f4b1bb authored by Tao Ma's avatar Tao Ma Committed by Joel Becker
Browse files

ocfs2: Move ocfs2_complete_reflink to the right place.



As its name ocfs2_complete_reflink indicates, it should
be called after all the work for reflink is done, so
it really should be called after we reflink xattr
successfully.

Signed-off-by: default avatarTao Ma <tao.ma@oracle.com>
Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
Tested-by: default avatarTristan Ye <tristan.ye@oracle.com>
parent fb5cbe9e
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -4013,10 +4013,6 @@ static int ocfs2_create_reflink_node(struct inode *s_inode,
		goto out_unlock_refcount;
	}

	ret = ocfs2_complete_reflink(s_inode, s_bh, t_inode, t_bh, preserve);
	if (ret)
		mlog_errno(ret);

out_unlock_refcount:
	ocfs2_unlock_refcount_tree(osb, ref_tree, 1);
	brelse(ref_root_bh);
@@ -4068,9 +4064,17 @@ static int __ocfs2_reflink(struct dentry *old_dentry,
		ret = ocfs2_reflink_xattrs(inode, old_bh,
					   new_inode, new_bh,
					   preserve);
		if (ret)
		if (ret) {
			mlog_errno(ret);
			goto inode_unlock;
		}
	}

	ret = ocfs2_complete_reflink(inode, old_bh,
				     new_inode, new_bh, preserve);
	if (ret)
		mlog_errno(ret);

inode_unlock:
	ocfs2_inode_unlock(new_inode, 1);
	brelse(new_bh);