@@ -670,6 +670,10 @@ xfs_attr_leaf_addname(
args->rmtblkcnt = args->rmtblkcnt2;
args->rmtvaluelen = args->rmtvaluelen2;
if (args->rmtblkno) {
+ error = xfs_attr_rmtval_invalidate(args);
+ if (error)
+ return error;
+
error = xfs_attr_rmtval_remove(args);
if (error)
return error;
@@ -1028,6 +1032,10 @@ restart:
args->rmtblkcnt = args->rmtblkcnt2;
args->rmtvaluelen = args->rmtvaluelen2;
if (args->rmtblkno) {
+ error = xfs_attr_rmtval_invalidate(args);
+ if (error)
+ return error;
+
error = xfs_attr_rmtval_remove(args);
if (error)
return error;
@@ -1153,6 +1161,10 @@ xfs_attr_node_removename(
if (error)
goto out;
+ error = xfs_attr_rmtval_invalidate(args);
+ if (error)
+ return error;
+
error = xfs_attr_rmtval_remove(args);
if (error)
goto out;
@@ -684,9 +684,6 @@ xfs_attr_rmtval_remove(
trace_xfs_attr_rmtval_remove(args);
- error = xfs_attr_rmtval_invalidate(args);
- if (error)
- return error;
/*
* Keep de-allocating extents until the remote-value region is gone.
*/