* GPL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
+ * Copyright (c) 2011 Whamcloud, Inc.
+ */
+/*
* This file is part of Lustre, http://www.lustre.org/
* Lustre is a trademark of Sun Microsystems, Inc.
*/
#include <liblustre.h>
#endif
-#include <lustre/lustre_idl.h>
#include <obd_support.h>
+#include <lustre/lustre_idl.h>
#include <lustre_lib.h>
#include <lustre_net.h>
#include <lustre_dlm.h>
obj_size = sizeof(struct lmv_stripe) *
lmv->desc.ld_tgt_count;
- OBD_ALLOC(obj->lo_stripes, obj_size);
+ OBD_ALLOC_LARGE(obj->lo_stripes, obj_size);
if (!obj->lo_stripes)
goto err_obj;
- memset(obj->lo_stripes, 0, obj_size);
-
CDEBUG(D_INODE, "Allocate object for "DFID"\n",
PFID(fid));
for (i = 0; i < mea->mea_count; i++) {
obj_size = sizeof(struct lmv_stripe) *
lmv->desc.ld_tgt_count;
- OBD_FREE(obj->lo_stripes, obj_size);
+ OBD_FREE_LARGE(obj->lo_stripes, obj_size);
OBD_SLAB_FREE(obj, lmv_object_cache, sizeof(*obj));
cfs_atomic_dec(&lmv_object_count);
}
return NULL;
}
-struct lmv_object *lmv_object_find(struct obd_device *obd,
+struct lmv_object *lmv_object_find(struct obd_device *obd,
const struct lu_fid *fid)
{
- struct lmv_object *obj;
+ struct lmv_obd *lmv = &obd->u.lmv;
+ struct lmv_object *obj = NULL;
ENTRY;
- cfs_spin_lock(&obj_list_lock);
- obj = __lmv_object_find(obd, fid);
- cfs_spin_unlock(&obj_list_lock);
+ /* For single MDT case, lmv_object list is always empty. */
+ if (lmv->desc.ld_tgt_count > 1) {
+ cfs_spin_lock(&obj_list_lock);
+ obj = __lmv_object_find(obd, fid);
+ cfs_spin_unlock(&obj_list_lock);
+ }
RETURN(obj);
}