Whamcloud - gitweb
LU-1214 ptlrpc: removes client lu_target.h/target.c dependency
[fs/lustre-release.git] / lustre / fid / fid_handler.c
index 2a33c43..72159e8 100644 (file)
@@ -28,6 +28,8 @@
 /*
  * 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/
@@ -54,7 +56,6 @@
 
 #include <obd.h>
 #include <obd_class.h>
-#include <lu_target.h>
 #include <dt_object.h>
 #include <md_object.h>
 #include <obd_support.h>
@@ -75,7 +76,7 @@ int seq_server_set_cli(struct lu_server_seq *seq,
          * Ask client for new range, assign that range to ->seq_space and write
          * seq state to backing store should be atomic.
          */
-        cfs_down(&seq->lss_sem);
+        cfs_mutex_lock(&seq->lss_mutex);
 
         if (cli == NULL) {
                 CDEBUG(D_INFO, "%s: Detached sequence client %s\n",
@@ -97,7 +98,7 @@ int seq_server_set_cli(struct lu_server_seq *seq,
         cli->lcs_space.lsr_index = seq->lss_site->ms_node_id;
         EXIT;
 out_up:
-        cfs_up(&seq->lss_sem);
+        cfs_mutex_unlock(&seq->lss_mutex);
         return rc;
 }
 EXPORT_SYMBOL(seq_server_set_cli);
@@ -154,9 +155,9 @@ int seq_server_alloc_super(struct lu_server_seq *seq,
         int rc;
         ENTRY;
 
-        cfs_down(&seq->lss_sem);
+        cfs_mutex_lock(&seq->lss_mutex);
         rc = __seq_server_alloc_super(seq, out, env);
-        cfs_up(&seq->lss_sem);
+        cfs_mutex_unlock(&seq->lss_mutex);
 
         RETURN(rc);
 }
@@ -171,7 +172,6 @@ static int __seq_set_init(const struct lu_env *env,
         range_alloc(&seq->lss_hiwater_set, space, seq->lss_set_width);
 
         rc = seq_store_update(env, seq, NULL, 1);
-        seq->lss_set_transno = 0;
 
         return rc;
 }
@@ -209,31 +209,21 @@ static int range_alloc_set(const struct lu_env *env,
         if (range_is_exhausted(loset)) {
                 /* reached high water mark. */
                 struct lu_device *dev = seq->lss_site->ms_lu.ls_top_dev;
-                struct lu_target *tg = dev->ld_obd->u.obt.obt_lut;
                 int obd_num_clients = dev->ld_obd->obd_num_exports;
                 __u64 set_sz;
-                int sync = 0;
 
                 /* calculate new seq width based on number of clients */
                 set_sz = max(seq->lss_set_width,
-                               obd_num_clients * seq->lss_width);
+                             obd_num_clients * seq->lss_width);
                 set_sz = min(range_space(space), set_sz);
 
                 /* Switch to hiwater range now */
-                loset = hiset;
+                *loset = *hiset;
                 /* allocate new hiwater range */
                 range_alloc(hiset, space, set_sz);
 
-                if (seq->lss_set_transno > dev->ld_obd->obd_last_committed)
-                        sync = 1;
-
                 /* update ondisk seq with new *space */
-                rc = seq_store_update(env, seq, NULL, sync);
-
-                /* set new hiwater transno */
-                cfs_spin_lock(&tg->lut_translock);
-                seq->lss_set_transno = tg->lut_last_transno;
-                cfs_spin_unlock(&tg->lut_translock);
+                rc = seq_store_update(env, seq, NULL, seq->lss_need_sync);
         }
 
         LASSERTF(!range_is_exhausted(loset) || range_is_sane(loset),
@@ -292,9 +282,9 @@ int seq_server_alloc_meta(struct lu_server_seq *seq,
         int rc;
         ENTRY;
 
-        cfs_down(&seq->lss_sem);
+        cfs_mutex_lock(&seq->lss_mutex);
         rc = __seq_server_alloc_meta(seq, out, env);
-        cfs_up(&seq->lss_sem);
+        cfs_mutex_unlock(&seq->lss_mutex);
 
         RETURN(rc);
 }
@@ -499,7 +489,7 @@ int seq_server_init(struct lu_server_seq *seq,
         range_init(&seq->lss_hiwater_set);
         seq->lss_set_width = LUSTRE_SEQ_BATCH_WIDTH;
 
-        cfs_sema_init(&seq->lss_sem, 1);
+        cfs_mutex_init(&seq->lss_mutex);
 
         seq->lss_width = is_srv ?
                 LUSTRE_SEQ_META_WIDTH : LUSTRE_SEQ_SUPER_WIDTH;