Whamcloud - gitweb
LU-1302 llog: pass lu_env as parametr in llog functions
[fs/lustre-release.git] / lustre / ptlrpc / llog_client.c
index 4305375..6b07ef2 100644 (file)
@@ -1,6 +1,4 @@
-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
  * GPL HEADER START
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -28,6 +26,8 @@
 /*
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright (c) 2012, Whamcloud, Inc.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
 
 #define DEBUG_SUBSYSTEM S_LOG
 
-#ifndef EXPORT_SYMTAB
-#define EXPORT_SYMTAB
-#endif
-
 #ifdef __KERNEL__
 #include <libcfs/libcfs.h>
 #else
@@ -58,7 +54,7 @@
 #include <libcfs/list.h>
 
 #define LLOG_CLIENT_ENTRY(ctxt, imp) do {                             \
-        cfs_mutex_down(&ctxt->loc_sem);                               \
+        cfs_mutex_lock(&ctxt->loc_mutex);                             \
         if (ctxt->loc_imp) {                                          \
                 imp = class_import_get(ctxt->loc_imp);                \
         } else {                                                      \
                        "but I'll try again next time.  Not fatal.\n", \
                        ctxt->loc_idx);                                \
                 imp = NULL;                                           \
-                cfs_mutex_up(&ctxt->loc_sem);                         \
+                cfs_mutex_unlock(&ctxt->loc_mutex);                   \
                 return (-EINVAL);                                     \
         }                                                             \
-        cfs_mutex_up(&ctxt->loc_sem);                                 \
+        cfs_mutex_unlock(&ctxt->loc_mutex);                           \
 } while(0)
 
 #define LLOG_CLIENT_EXIT(ctxt, imp) do {                              \
-        cfs_mutex_down(&ctxt->loc_sem);                               \
+        cfs_mutex_lock(&ctxt->loc_mutex);                             \
         if (ctxt->loc_imp != imp)                                     \
                 CWARN("loc_imp has changed from %p to %p\n",          \
                        ctxt->loc_imp, imp);                           \
         class_import_put(imp);                                        \
-        cfs_mutex_up(&ctxt->loc_sem);                                 \
+        cfs_mutex_unlock(&ctxt->loc_mutex);                           \
 } while(0)
 
 /* This is a callback from the llog_* functions.
  * Assumes caller has already pushed us into the kernel context. */
-static int llog_client_create(struct llog_ctxt *ctxt, struct llog_handle **res,
-                              struct llog_logid *logid, char *name)
+static int llog_client_create(const struct lu_env *env, struct llog_ctxt *ctxt,
+                             struct llog_handle **res,
+                             struct llog_logid *logid, char *name)
 {
         struct obd_import     *imp;
         struct llogd_body     *body;
@@ -147,11 +144,13 @@ out:
         ptlrpc_req_finished(req);
         return rc;
 err_free:
+        *res = NULL;
         llog_free_handle(handle);
         goto out;
 }
 
-static int llog_client_destroy(struct llog_handle *loghandle)
+static int llog_client_destroy(const struct lu_env *env,
+                              struct llog_handle *loghandle)
 {
         struct obd_import     *imp;
         struct ptlrpc_request *req = NULL;
@@ -172,7 +171,7 @@ static int llog_client_destroy(struct llog_handle *loghandle)
 
         ptlrpc_request_set_replen(req);
         rc = ptlrpc_queue_wait(req);
-        
+
         ptlrpc_req_finished(req);
 err_exit:
         LLOG_CLIENT_EXIT(loghandle->lgh_ctxt, imp);
@@ -180,9 +179,10 @@ err_exit:
 }
 
 
-static int llog_client_next_block(struct llog_handle *loghandle,
-                                  int *cur_idx, int next_idx,
-                                  __u64 *cur_offset, void *buf, int len)
+static int llog_client_next_block(const struct lu_env *env,
+                                 struct llog_handle *loghandle,
+                                 int *cur_idx, int next_idx,
+                                 __u64 *cur_offset, void *buf, int len)
 {
         struct obd_import     *imp;
         struct ptlrpc_request *req = NULL;
@@ -197,7 +197,7 @@ static int llog_client_next_block(struct llog_handle *loghandle,
                                         LLOG_ORIGIN_HANDLE_NEXT_BLOCK);
         if (req == NULL)
                 GOTO(err_exit, rc =-ENOMEM);
-                
+
         body = req_capsule_client_get(&req->rq_pill, &RMF_LLOGD_BODY);
         body->lgd_logid = loghandle->lgh_id;
         body->lgd_ctxt_idx = loghandle->lgh_ctxt->loc_idx - 1;
@@ -234,8 +234,9 @@ err_exit:
         return rc;
 }
 
-static int llog_client_prev_block(struct llog_handle *loghandle,
-                                  int prev_idx, void *buf, int len)
+static int llog_client_prev_block(const struct lu_env *env,
+                                 struct llog_handle *loghandle,
+                                 int prev_idx, void *buf, int len)
 {
         struct obd_import     *imp;
         struct ptlrpc_request *req = NULL;
@@ -282,7 +283,8 @@ err_exit:
         return rc;
 }
 
-static int llog_client_read_header(struct llog_handle *handle)
+static int llog_client_read_header(const struct lu_env *env,
+                                  struct llog_handle *handle)
 {
         struct obd_import     *imp;
         struct ptlrpc_request *req = NULL;
@@ -337,7 +339,8 @@ err_exit:
         return rc;
 }
 
-static int llog_client_close(struct llog_handle *handle)
+static int llog_client_close(const struct lu_env *env,
+                            struct llog_handle *handle)
 {
         /* this doesn't call LLOG_ORIGIN_HANDLE_CLOSE because
            the servers all close the file at the end of every
@@ -354,3 +357,4 @@ struct llog_operations llog_client_ops = {
         lop_destroy:     llog_client_destroy,
         lop_close:       llog_client_close,
 };
+EXPORT_SYMBOL(llog_client_ops);