X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fcmm%2Fcmm_object.c;h=c9301cf9327f8f2eda655c534682910171dbab96;hb=6e3ec5812ebd1b5ecf7cae584f429b013ffe7431;hp=fa525994acc4d3cdd8b2a6fcecd69b45164dc017;hpb=2c74bfcb7a06addb42e79c1f561afb0acfaaa7d0;p=fs%2Flustre-release.git diff --git a/lustre/cmm/cmm_object.c b/lustre/cmm/cmm_object.c index fa52599..c9301cf 100644 --- a/lustre/cmm/cmm_object.c +++ b/lustre/cmm/cmm_object.c @@ -160,7 +160,7 @@ static void cml_object_free(const struct lu_env *env, } static int cml_object_init(const struct lu_env *env, struct lu_object *lo, - const struct lu_object_conf *_) + const struct lu_object_conf *unused) { struct cmm_device *cd = lu2cmm_dev(lo->lo_dev); struct lu_device *c_dev; @@ -362,6 +362,18 @@ static int cml_object_sync(const struct lu_env *env, struct md_object *mo) RETURN(rc); } +static dt_obj_version_t cml_version_get(const struct lu_env *env, + struct md_object *mo) +{ + return mo_version_get(env, md_object_next(mo)); +} + +static void cml_version_set(const struct lu_env *env, struct md_object *mo, + dt_obj_version_t version) +{ + return mo_version_set(env, md_object_next(mo), version); +} + static const struct md_object_operations cml_mo_ops = { .moo_permission = cml_permission, .moo_attr_get = cml_attr_get, @@ -379,6 +391,8 @@ static const struct md_object_operations cml_mo_ops = { .moo_readlink = cml_readlink, .moo_capa_get = cml_capa_get, .moo_object_sync = cml_object_sync, + .moo_version_get = cml_version_get, + .moo_version_set = cml_version_set, .moo_path = cml_path, }; @@ -787,14 +801,14 @@ static struct lu_device *cmr_child_dev(struct cmm_device *d, __u32 num) struct lu_device *next = NULL; struct mdc_device *mdc; - spin_lock(&d->cmm_tgt_guard); - list_for_each_entry(mdc, &d->cmm_targets, mc_linkage) { + cfs_spin_lock(&d->cmm_tgt_guard); + cfs_list_for_each_entry(mdc, &d->cmm_targets, mc_linkage) { if (mdc->mc_num == num) { next = mdc2lu_dev(mdc); break; } } - spin_unlock(&d->cmm_tgt_guard); + cfs_spin_unlock(&d->cmm_tgt_guard); return next; } @@ -808,7 +822,7 @@ static void cmr_object_free(const struct lu_env *env, } static int cmr_object_init(const struct lu_env *env, struct lu_object *lo, - const struct lu_object_conf *_) + const struct lu_object_conf *unused) { struct cmm_device *cd = lu2cmm_dev(lo->lo_dev); struct lu_device *c_dev; @@ -953,6 +967,20 @@ static int cmr_object_sync(const struct lu_env *env, struct md_object *mo) return -EFAULT; } +static dt_obj_version_t cmr_version_get(const struct lu_env *env, + struct md_object *mo) +{ + /* Don't check remote object version */ + return 0; +} + +static void cmr_version_set(const struct lu_env *env, struct md_object *mo, + dt_obj_version_t version) +{ + /* No need to update remote object version here, it is done as a part + * of reintegration of partial operation on the remote server */ +} + static const struct md_object_operations cmr_mo_ops = { .moo_permission = cmr_permission, .moo_attr_get = cmr_attr_get, @@ -970,6 +998,8 @@ static const struct md_object_operations cmr_mo_ops = { .moo_readlink = cmr_readlink, .moo_capa_get = cmr_capa_get, .moo_object_sync = cmr_object_sync, + .moo_version_get = cmr_version_get, + .moo_version_set = cmr_version_set, .moo_path = cmr_path, };