Whamcloud - gitweb
LU-14462 gss: fix support for namespace in lgss_keyring
[fs/lustre-release.git] / lustre / obdecho / echo.c
index 4f069b9..08c72b2 100644 (file)
@@ -39,7 +39,6 @@
 
 #include <obd_support.h>
 #include <obd_class.h>
-#include <lustre_debug.h>
 #include <lustre_dlm.h>
 #include <lprocfs_status.h>
 
@@ -68,7 +67,7 @@ struct echo_srv_device {
 
 static inline struct echo_srv_device *echo_srv_dev(struct lu_device *d)
 {
-       return container_of0(d, struct echo_srv_device, esd_dev);
+       return container_of_safe(d, struct echo_srv_device, esd_dev);
 }
 
 static inline struct obd_device *echo_srv_obd(struct echo_srv_device *esd)
@@ -121,13 +120,13 @@ static int echo_destroy_export(struct obd_export *exp)
        RETURN(0);
 }
 
-static u64 echo_next_id(struct obd_device *obddev)
+static u64 echo_next_id(struct obd_device *obd)
 {
        u64 id;
 
-       spin_lock(&obddev->u.echo.eo_lock);
-       id = ++obddev->u.echo.eo_lastino;
-       spin_unlock(&obddev->u.echo.eo_lock);
+       spin_lock(&obd->u.echo.eo_lock);
+       id = ++obd->u.echo.eo_lastino;
+       spin_unlock(&obd->u.echo.eo_lock);
 
        return id;
 }
@@ -232,6 +231,8 @@ static int echo_map_nb_to_lb(struct obdo *oa, struct obd_ioobj *obj,
                                       POSTID(&obj->ioo_oid));
                                return -ENOMEM;
                        }
+                       /* set mapping so page is not considered encrypted */
+                       res->lnb_page->mapping = ECHO_MAPPING_UNENCRYPTED;
                }
 
                CDEBUG(D_PAGE, "$$$$ get page %p @ %llu for %d\n",
@@ -766,8 +767,13 @@ static int echo_srv_init0(const struct lu_env *env,
                                                LDLM_NAMESPACE_SERVER,
                                                LDLM_NAMESPACE_MODEST,
                                                LDLM_NS_TYPE_OST);
-       if (!obd->obd_namespace)
-               RETURN(-ENOMEM);
+       if (IS_ERR(obd->obd_namespace)) {
+               rc = PTR_ERR(obd->obd_namespace);
+               CERROR("%s: unable to create server namespace: rc = %d\n",
+                      obd->obd_name, rc);
+               obd->obd_namespace = NULL;
+               RETURN(rc);
+       }
 
        obd->obd_vars = lprocfs_echo_obd_vars;
        if (!lprocfs_obd_setup(obd, true) &&
@@ -964,6 +970,8 @@ int echo_persistent_pages_init(void)
 
                memset(kmap(pg), 0, PAGE_SIZE);
                kunmap(pg);
+               /* set mapping so page is not considered encrypted */
+               pg->mapping = ECHO_MAPPING_UNENCRYPTED;
 
                echo_persistent_pages[i] = pg;
        }