* Author: Nikita Danilov <nikita.danilov@sun.com>
*/
-/** \addtogroup lov lov @{ */
-
#define DEBUG_SUBSYSTEM S_LOV
#include "lov_cl_internal.h"
+/** \addtogroup lov
+ * @{
+ */
+
/*****************************************************************************
*
* Layout operations.
oinfo_get_fid(oinfo, ofid);
subdev = lovsub2cl_dev(dev->ld_target[ost_idx]);
subconf->u.coc_oinfo = oinfo;
+ LASSERTF(subdev != NULL, "not init ost %d\n", ost_idx);
stripe = lov_sub_find(env, subdev, ofid, subconf);
if (!IS_ERR(stripe))
result = lov_init_sub(env, lov, stripe, r0, i);
cfs_waitlink_t *waiter;
r0 = &lov->u.raid0;
- sub = lovsub2cl(los);
LASSERT(r0->lo_sub[idx] == los);
+ sub = lovsub2cl(los);
+ site = sub->co_lu.lo_dev->ld_site;
+
cl_object_kill(env, sub);
/* release a reference to the sub-object and ... */
lu_object_ref_del(&sub->co_lu, "lov-parent", lov);
* ->lo_sub[] slot in lovsub_object_fini() */
if (r0->lo_sub[idx] == los) {
waiter = &lov_env_info(env)->lti_waiter;
- site = sub->co_lu.lo_dev->ld_site;
cfs_waitlink_init(waiter);
cfs_waitq_add(&site->ls_marche_funebre, waiter);
set_current_state(CFS_TASK_UNINT);
};
struct lu_object *lov_object_alloc(const struct lu_env *env,
- const struct lu_object_header *_,
+ const struct lu_object_header *unused,
struct lu_device *dev)
{
struct lov_object *lov;