fp_newerxy:1,
fp_exclude_btime:1,
fp_exclude_perm:1,
- fp_unused_bit4:1, /* Once all unused fields */
+ fp_stop_on_error:1, /* stop iteration on error */
fp_unused_bit5:1, /* are used we need to add */
fp_unused_bit6:1, /* a separate flag field at*/
fp_unused_bit7:1; /* the end of the struct. */
break;
case DT_DIR:
rc = llapi_semantic_traverse(path, size, d, sem_init,
- sem_fini, data, dent);
+ sem_fini, data, dent);
if (rc != 0 && ret == 0)
ret = rc;
+ if (rc < 0 && rc != -EALREADY &&
+ param->fp_stop_on_error)
+ goto out;
break;
default:
rc = 0;
rc = sem_init(path, d, NULL, data, dent);
if (rc < 0 && ret == 0) {
ret = rc;
+ if (rc && rc != -EALREADY &&
+ param->fp_stop_on_error)
+ goto out;
break;
}
}
int llapi_migrate_mdt(char *path, struct find_param *param)
{
+ param->fp_stop_on_error = 1;
return param_callback(path, cb_migrate_mdt_init, cb_migrate_mdt_fini,
param);
}