Whamcloud - gitweb
add a branch and its table named "b_iam" for "Index API Module" from #colibri
[fs/lustre-release.git] / lustre / lov / lov_internal.h
index 1b1211b..3d944bc 100644 (file)
@@ -126,44 +126,35 @@ lov_tgt_ready(struct lov_obd *lov, struct lov_tgt_desc *tgt, int gen)
         return rc;
 }
 
-static inline void
-lov_tgt_decref(struct lov_obd *lov, struct lov_tgt_desc *tgt)
+static inline int
+lov_tgt_valid(struct lov_obd *lov, struct lov_tgt_desc *tgt, int gen)
 {
-        int do_wakeup = 0;
-
+        int rc = 0;
         lov_tgts_lock(lov);
 
-        if ((--tgt->ltd_refcount == 0) && (tgt->ltd_flags & LTD_DEL_PENDING)) {
-                do_wakeup = 1;
-        } 
+        if (((gen == 0) || (gen == tgt->ltd_gen)) && (tgt->ltd_exp != NULL)) {
+                tgt->ltd_refcount++;
+                rc = 1;
+        }
 
         lov_tgts_unlock(lov);
-        if (do_wakeup)
-                wake_up(&lov->lov_tgt_waitq);
+        return rc;
 }
 
 static inline void
-lov_tgt_incref(struct lov_obd *lov, struct lov_tgt_desc *tgt)
+lov_tgt_decref(struct lov_obd *lov, struct lov_tgt_desc *tgt)
 {
-        lov_tgts_lock(lov);
-        ++tgt->ltd_refcount;
-        lov_tgts_unlock(lov);
-}
+        int do_wakeup = 0;
 
-static inline int
-lov_tgt_pending(struct lov_obd *lov, struct lov_tgt_desc *tgt, int gen)
-{
-        int rc = 0;
         lov_tgts_lock(lov);
 
-        if (((gen == 0) || (gen == tgt->ltd_gen)) &&
-            (tgt->ltd_flags &(LTD_ACTIVE|LTD_DEL_PENDING)) == LTD_DEL_PENDING) {
-                tgt->ltd_refcount++;
-                rc = 1;
-        }
+        if ((--tgt->ltd_refcount == 0) && (tgt->ltd_flags & LTD_DEL_PENDING)) {
+                do_wakeup = 1;
+        } 
 
         lov_tgts_unlock(lov);
-        return rc;
+        if (do_wakeup)
+                wake_up(&lov->lov_tgt_waitq);
 }
 
 struct lov_async_page {