/* CMM local md_object operations */
static int cml_object_create(const struct lu_context *ctx,
struct md_object *mo,
- struct lu_attr *attr)
+ struct md_attr *attr)
{
int rc;
ENTRY;
RETURN(rc);
}
-static int cml_ref_del(const struct lu_context *ctx, struct md_object *mo)
+static int cml_ref_del(const struct lu_context *ctx, struct md_object *mo,
+ struct md_attr *ma)
{
int rc;
ENTRY;
- rc = mo_ref_del(ctx, md_object_next(mo));
+ rc = mo_ref_del(ctx, md_object_next(mo), ma);
RETURN(rc);
}
static int cml_create(const struct lu_context *ctx, struct md_object *mo_p,
const char *child_name, struct md_object *mo_c,
- const char *target_name, struct lu_attr *attr)
+ const char *target_name, struct md_attr *ma)
{
int rc;
ENTRY;
rc = mdo_create(ctx, md_object_next(mo_p), child_name,
- md_object_next(mo_c), target_name, attr);
+ md_object_next(mo_c), target_name, ma);
RETURN(rc);
}
}
static int cml_unlink(const struct lu_context *ctx, struct md_object *mo_p,
- struct md_object *mo_c, const char *name)
+ struct md_object *mo_c, const char *name,
+ struct md_attr *ma)
{
int rc;
ENTRY;
- rc = mdo_unlink(ctx, md_object_next(mo_p),
- md_object_next(mo_c), name);
+ rc = mdo_unlink(ctx, md_object_next(mo_p), md_object_next(mo_c),
+ name, ma);
RETURN(rc);
}
if (mo_t && lu_object_exists(ctx, &mo_t->mo_lu) < 0) {
/* mo_t is remote object and there is RPC to unlink it */
- rc = mo_ref_del(ctx, md_object_next(mo_t));
+ rc = mo_ref_del(ctx, md_object_next(mo_t), NULL);
if (rc)
RETURN(rc);
mo_t = NULL;
/* CMM remote md_object operations. All are invalid */
static int cmr_object_create(const struct lu_context *ctx,
struct md_object *mo,
- struct lu_attr *attr)
+ struct md_attr *ma)
{
RETURN(-EFAULT);
}
RETURN(-EFAULT);
}
-static int cmr_ref_del(const struct lu_context *ctx, struct md_object *mo)
+static int cmr_ref_del(const struct lu_context *ctx, struct md_object *mo,
+ struct md_attr *ma)
{
RETURN(-EFAULT);
}
*/
static int cmr_create(const struct lu_context *ctx, struct md_object *mo_p,
const char *child_name, struct md_object *mo_c,
- const char *target_name, struct lu_attr *attr)
+ const char *target_name, struct md_attr *ma)
{
int rc;
//XXX: make sure that MDT checks name isn't exist
/* remote object creation and local name insert */
- rc = mo_object_create(ctx, md_object_next(mo_c), attr);
+ rc = mo_object_create(ctx, md_object_next(mo_c), ma);
if (rc == 0) {
rc = mdo_name_insert(ctx, md_object_next(mo_p),
child_name, lu_object_fid(&mo_c->mo_lu));
}
static int cmr_unlink(const struct lu_context *ctx, struct md_object *mo_p,
- struct md_object *mo_c, const char *name)
+ struct md_object *mo_c, const char *name,
+ struct md_attr *ma)
{
int rc;
ENTRY;
- rc = mo_ref_del(ctx, md_object_next(mo_c));
+ rc = mo_ref_del(ctx, md_object_next(mo_c), ma);
if (rc == 0) {
rc = mdo_name_remove(ctx, md_object_next(mo_p),
name);
int rc;
ENTRY;
/* target object is remote one */
- rc = mo_ref_del(ctx, md_object_next(mo_t));
+ rc = mo_ref_del(ctx, md_object_next(mo_t), NULL);
/* continue locally with name handling only */
if (rc == 0)
rc = mdo_rename_tgt(ctx, md_object_next(mo_p),
/* md_object_operations */
static int mdc_object_create(const struct lu_context *ctx,
- struct md_object *mo, struct lu_attr *attr)
+ struct md_object *mo, struct md_attr *ma)
{
struct mdc_device *mc = md2mdc_dev(md_obj2dev(mo));
+ struct lu_attr *attr = &ma->ma_attr;
struct mdc_thread_info *mci;
int rc;
ENTRY;
RETURN(rc);
}
-static int mdc_ref_del(const struct lu_context *ctx, struct md_object *mo)
+static int mdc_ref_del(const struct lu_context *ctx, struct md_object *mo,
+ struct md_attr *ma)
{
struct mdc_device *mc = md2mdc_dev(md_obj2dev(mo));
struct mdc_thread_info *mci;
int rc;
ENTRY;
-
+ /*XXX: update attr after reply */
mci = lu_context_key_get(ctx, &mdc_thread_key);
LASSERT(mci);