static int mdt_init_export(struct obd_export *exp)
{
struct mdt_export_data *med = &exp->exp_mdt_data;
- int rc = 0;
+ int rc;
ENTRY;
CFS_INIT_LIST_HEAD(&med->med_open_head);
cfs_spin_lock(&exp->exp_lock);
exp->exp_connecting = 1;
cfs_spin_unlock(&exp->exp_lock);
-
- /* self-export doesn't need client data and ldlm initialization */
- if (unlikely(exp == exp->exp_obd->obd_self_export))
- RETURN(0);
-
rc = lut_client_alloc(exp);
if (rc == 0)
rc = ldlm_init_export(exp);
+
if (rc)
- CERROR("%s: Error %d while initializing export\n",
- exp->exp_obd->obd_name, rc);
+ CERROR("Error %d while initializing export\n", rc);
RETURN(rc);
}
static int mdt_destroy_export(struct obd_export *exp)
{
+ struct mdt_export_data *med;
+ int rc = 0;
ENTRY;
+ med = &exp->exp_mdt_data;
if (exp_connect_rmtclient(exp))
mdt_cleanup_idmap(&exp->exp_mdt_data);
target_destroy_export(exp);
- if (unlikely(exp == exp->exp_obd->obd_self_export))
- RETURN(0);
-
ldlm_destroy_export(exp);
lut_client_free(exp);
LASSERT(cfs_list_empty(&exp->exp_outstanding_replies));
LASSERT(cfs_list_empty(&exp->exp_mdt_data.med_open_head));
+ if (obd_uuid_equals(&exp->exp_client_uuid, &exp->exp_obd->obd_uuid))
+ RETURN(0);
- RETURN(0);
+ RETURN(rc);
}
static void mdt_allow_cli(struct mdt_device *m, unsigned int flag)
exp->exp_connecting = 1;
cfs_spin_unlock(&exp->exp_lock);
- /* self-export doesn't need client data and ldlm initialization */
- if (unlikely(exp == exp->exp_obd->obd_self_export))
- return 0;
return ldlm_init_export(exp);
}
target_destroy_export(exp);
mgs_client_free(exp);
-
- if (unlikely(exp == exp->exp_obd->obd_self_export))
- RETURN(0);
-
ldlm_destroy_export(exp);
RETURN(0);
static int filter_init_export(struct obd_export *exp)
{
- int rc = 0;
- ENTRY;
-
+ int rc;
cfs_spin_lock_init(&exp->exp_filter_data.fed_lock);
CFS_INIT_LIST_HEAD(&exp->exp_filter_data.fed_mod_list);
cfs_spin_lock(&exp->exp_lock);
exp->exp_connecting = 1;
cfs_spin_unlock(&exp->exp_lock);
-
- /* self-export doesn't need client data and ldlm initialization */
- if (unlikely(exp == exp->exp_obd->obd_self_export))
- RETURN(0);
-
rc = lut_client_alloc(exp);
if (rc == 0)
rc = ldlm_init_export(exp);
- if (rc)
- CERROR("%s: Can't initialize export: rc %d\n",
- exp->exp_obd->obd_name, rc);
- RETURN(rc);
+ return rc;
}
static int filter_free_server_data(struct obd_device_target *obt)
lquota_clearinfo(filter_quota_interface_ref, exp, exp->exp_obd);
target_destroy_export(exp);
-
- if (unlikely(exp == exp->exp_obd->obd_self_export))
- RETURN(0);
-
ldlm_destroy_export(exp);
lut_client_free(exp);
+ if (obd_uuid_equals(&exp->exp_client_uuid, &exp->exp_obd->obd_uuid))
+ RETURN(0);
+
if (!exp->exp_obd->obd_replayable)
fsfilt_sync(exp->exp_obd, exp->exp_obd->u.obt.obt_sb);
*/
int lut_client_alloc(struct obd_export *exp)
{
- LASSERT(exp != exp->exp_obd->obd_self_export);
-
OBD_ALLOC_PTR(exp->exp_target_data.ted_lcd);
if (exp->exp_target_data.ted_lcd == NULL)
RETURN(-ENOMEM);
struct tg_export_data *ted = &exp->exp_target_data;
struct lu_target *lut = class_exp2tgt(exp);
- LASSERT(exp != exp->exp_obd->obd_self_export);
-
OBD_FREE_PTR(ted->ted_lcd);
ted->ted_lcd = NULL;