+ GOTO(stop, rc);
+
+ if (vic) {
+ /* don't use the same file to save the splitted mirror */
+ rc = lu_fid_cmp(mdd_object_fid(obj), mdd_object_fid(vic));
+ if (rc == 0)
+ GOTO(stop, rc = -EPERM);
+
+ if (rc > 0) {
+ mdd_write_lock(env, obj, DT_TGT_CHILD);
+ mdd_write_lock(env, vic, DT_TGT_CHILD);
+ } else {
+ mdd_write_lock(env, vic, DT_TGT_CHILD);
+ mdd_write_lock(env, obj, DT_TGT_CHILD);
+ }
+ } else {
+ mdd_write_lock(env, obj, DT_TGT_CHILD);
+ }