Whamcloud - gitweb
LU-1222 ldlm: Fix the race in AST sender vs multiple arriving RPCs
[fs/lustre-release.git] / lustre / fld / fld_handler.c
index ae9520a..3359ef4 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, 2012, Whamcloud, Inc.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -111,6 +113,30 @@ static void __exit fld_mod_exit(void)
         }
 }
 
+int fld_declare_server_create(struct lu_server_fld *fld,
+                              const struct lu_env *env,
+                              struct thandle *th)
+{
+        struct dt_object *dt_obj = fld->lsf_obj;
+        int rc;
+
+        ENTRY;
+
+        /* for ldiskfs OSD it's enough to declare operation with any ops
+         * with DMU we'll probably need to specify exact key/value */
+        rc = dt_obj->do_index_ops->dio_declare_delete(env, dt_obj, NULL, th);
+        if (rc)
+                GOTO(out, rc);
+        rc = dt_obj->do_index_ops->dio_declare_delete(env, dt_obj, NULL, th);
+        if (rc)
+                GOTO(out, rc);
+        rc = dt_obj->do_index_ops->dio_declare_insert(env, dt_obj,
+                                                      NULL, NULL, th);
+out:
+        RETURN(rc);
+}
+EXPORT_SYMBOL(fld_declare_server_create);
+
 /**
  * Insert FLD index entry and update FLD cache.
  *
@@ -245,7 +271,6 @@ out:
 
         RETURN(rc);
 }
-
 EXPORT_SYMBOL(fld_server_create);
 
 /**