Whamcloud - gitweb
LU-4799 llite: Do not rate limit dirty page discard warning
[fs/lustre-release.git] / lustre / lov / lov_object.c
index a33848b..13ed111 100644 (file)
@@ -42,7 +42,6 @@
 #define DEBUG_SUBSYSTEM S_LOV
 
 #include "lov_cl_internal.h"
-#include <lustre_debug.h>
 
 /** \addtogroup lov
  *  @{
@@ -233,6 +232,8 @@ static int lov_init_raid0(const struct lu_env *env,
        r0->lo_nr  = lsm->lsm_stripe_count;
        LASSERT(r0->lo_nr <= lov_targets_nr(dev));
 
+       lov->lo_layout_invalid = true;
+
        OBD_ALLOC_LARGE(r0->lo_sub, r0->lo_nr * sizeof r0->lo_sub[0]);
        if (r0->lo_sub != NULL) {
                int psz = 0;
@@ -922,28 +923,28 @@ static const struct lu_object_operations lov_lu_obj_ops = {
 };
 
 struct lu_object *lov_object_alloc(const struct lu_env *env,
-                                   const struct lu_object_header *unused,
-                                   struct lu_device *dev)
+                                  const struct lu_object_header *unused,
+                                  struct lu_device *dev)
 {
-        struct lov_object *lov;
-        struct lu_object  *obj;
+       struct lov_object *lov;
+       struct lu_object  *obj;
 
-        ENTRY;
-       OBD_SLAB_ALLOC_PTR_GFP(lov, lov_object_kmem, __GFP_IO);
-        if (lov != NULL) {
-                obj = lov2lu(lov);
-                lu_object_init(obj, NULL, dev);
-                lov->lo_cl.co_ops = &lov_ops;
-                lov->lo_type = -1; /* invalid, to catch uninitialized type */
-                /*
-                 * object io operation vector (cl_object::co_iop) is installed
-                 * later in lov_object_init(), as different vectors are used
-                 * for object with different layouts.
-                 */
-                obj->lo_ops = &lov_lu_obj_ops;
-        } else
-                obj = NULL;
-        RETURN(obj);
+       ENTRY;
+       OBD_SLAB_ALLOC_PTR_GFP(lov, lov_object_kmem, GFP_NOFS);
+       if (lov != NULL) {
+               obj = lov2lu(lov);
+               lu_object_init(obj, NULL, dev);
+               lov->lo_cl.co_ops = &lov_ops;
+               lov->lo_type = -1; /* invalid, to catch uninitialized type */
+               /*
+                * object io operation vector (cl_object::co_iop) is installed
+                * later in lov_object_init(), as different vectors are used
+                * for object with different layouts.
+                */
+               obj->lo_ops = &lov_lu_obj_ops;
+       } else
+               obj = NULL;
+       RETURN(obj);
 }
 
 struct lov_stripe_md *lov_lsm_addref(struct lov_object *lov)
@@ -961,17 +962,6 @@ struct lov_stripe_md *lov_lsm_addref(struct lov_object *lov)
        return lsm;
 }
 
-void lov_lsm_decref(struct lov_object *lov, struct lov_stripe_md *lsm)
-{
-       if (lsm == NULL)
-               return;
-
-       CDEBUG(D_INODE, "lsm %p decref %d by %p.\n",
-               lsm, cfs_atomic_read(&lsm->lsm_refc), current);
-
-       lov_free_memmd(&lsm);
-}
-
 struct lov_stripe_md *lov_lsm_get(struct cl_object *clobj)
 {
        struct lu_object *luobj;