Whamcloud - gitweb
LU-1303 fld: verify support for range lookups
[fs/lustre-release.git] / lustre / include / lustre_fld.h
index 571ec45..836ecfd 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) 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/
@@ -97,6 +97,11 @@ struct lu_server_fld {
         /**
          * Fld service name in form "fld-srv-lustre-MDTXXX" */
         char                     lsf_name[80];
+
+       /**
+        * Backend does not support range lookups,
+        * indexes other that 0 will be prohibited */
+       int                      lsf_no_range_lookup;
 };
 
 struct lu_client_fld {
@@ -155,6 +160,10 @@ int fld_server_init(struct lu_server_fld *fld,
 void fld_server_fini(struct lu_server_fld *fld,
                      const struct lu_env *env);
 
+int fld_declare_server_create(struct lu_server_fld *fld,
+                              const struct lu_env *env,
+                              struct thandle *th);
+
 int fld_server_create(struct lu_server_fld *fld,
                       const struct lu_env *env,
                       struct lu_seq_range *add_range,
@@ -176,9 +185,8 @@ void fld_client_fini(struct lu_client_fld *fld);
 
 void fld_client_flush(struct lu_client_fld *fld);
 
-int fld_client_lookup(struct lu_client_fld *fld,
-                      seqno_t seq, mdsno_t *mds,
-                      const struct lu_env *env);
+int fld_client_lookup(struct lu_client_fld *fld, seqno_t seq, mdsno_t *mds,
+                      __u32 flags, const struct lu_env *env);
 
 int fld_client_create(struct lu_client_fld *fld,
                       struct lu_seq_range *range,
@@ -194,6 +202,8 @@ int fld_client_add_target(struct lu_client_fld *fld,
 int fld_client_del_target(struct lu_client_fld *fld,
                           __u64 idx);
 
+void fld_client_proc_fini(struct lu_client_fld *fld);
+
 /** @} fld */
 
 #endif