* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2012, Whamcloud, Inc.
+ * Copyright (c) 2011, 2012, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
int orph_declare_index_insert(const struct lu_env *env,
- struct mdd_object *obj,
- struct thandle *th)
+ struct mdd_object *obj,
+ cfs_umode_t mode, struct thandle *th)
{
- struct mdd_device *mdd = mdo2mdd(&obj->mod_obj);
- struct dt_key *key;
- int rc;
+ struct mdd_device *mdd = mdo2mdd(&obj->mod_obj);
+ struct dt_key *key;
+ int rc;
key = orph_key_fill(env, mdo2fid(obj), ORPH_OP_UNLINK);
rc = dt_declare_insert(env, mdd->mdd_orphans, NULL, key, th);
- if (rc)
- return rc;
+ if (rc)
+ return rc;
- rc = mdo_declare_ref_add(env, obj, th);
- if (rc)
- return rc;
+ rc = mdo_declare_ref_add(env, obj, th);
+ if (rc)
+ return rc;
- if (!S_ISDIR(mdd_object_type(obj)))
- return 0;
+ if (!S_ISDIR(mode))
+ return 0;
- rc = mdo_declare_ref_add(env, obj, th);
- if (rc)
- return rc;
+ rc = mdo_declare_ref_add(env, obj, th);
+ if (rc)
+ return rc;
- rc = dt_declare_ref_add(env, mdd->mdd_orphans, th);
- if (rc)
- return rc;
+ rc = dt_declare_ref_add(env, mdd->mdd_orphans, th);
+ if (rc)
+ return rc;
- rc = mdo_declare_index_delete(env, obj, dotdot, th);
- if (rc)
- return rc;
+ rc = mdo_declare_index_delete(env, obj, dotdot, th);
+ if (rc)
+ return rc;
- rc = mdo_declare_index_insert(env, obj, NULL, dotdot, th);
+ rc = mdo_declare_index_insert(env, obj, NULL, dotdot, th);
- return rc;
+ return rc;
}
static int orph_index_insert(const struct lu_env *env,
LASSERT(mdd_write_locked(env, obj) != 0);
LASSERT(!(obj->mod_flags & ORPHAN_OBJ));
- LASSERT(obj->mod_count > 0);
mdd_orphan_write_lock(env, mdd);