Whamcloud - gitweb
LU-12635 build: Support for gcc -Wimplicit-fallthrough
[fs/lustre-release.git] / lustre / fid / fid_internal.h
index 73d5959..2783dd0 100644 (file)
@@ -1,80 +1,94 @@
-/* -*- MODE: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
+/*
+ * GPL HEADER START
  *
- *  fid/fid_internal.h
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
- *  Copyright (C) 2006 Cluster File Systems, Inc.
- *   Author: Yury Umanets <umka@clusterfs.com>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
  *
- *   This file is part of the Lustre file system, http://www.lustre.org
- *   Lustre is a trademark of Cluster File Systems, Inc.
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
  *
- *   You may have signed or agreed to another license before downloading
- *   this software.  If so, you are bound by the terms and conditions
- *   of that agreement, and the following does not apply to you.  See the
- *   LICENSE file included with this distribution for more information.
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; If not, see
+ * http://www.gnu.org/licenses/gpl-2.0.html
  *
- *   If you did not agree to a different license, then this copy of Lustre
- *   is open source software; you can redistribute it and/or modify it
- *   under the terms of version 2 of the GNU General Public License as
- *   published by the Free Software Foundation.
+ * GPL HEADER END
+ */
+/*
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Use is subject to license terms.
  *
- *   In either case, Lustre is distributed in the hope that it will be
- *   useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- *   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   license text for more details.
+ * Copyright (c) 2012, 2014, Intel Corporation.
+ */
+/*
+ * This file is part of Lustre, http://www.lustre.org/
+ * Lustre is a trademark of Sun Microsystems, Inc.
+ *
+ * lustre/fid/fid_internal.h
+ *
+ * Author: Yury Umanets <umka@clusterfs.com>
  */
 #ifndef __FID_INTERNAL_H
 #define __FID_INTERNAL_H
 
-#include <lustre/lustre_idl.h>
-#include <dt_object.h>
+#include <libcfs/libcfs.h>
 
-#include <libcfs/list.h>
-#include <libcfs/kp30.h>
+#ifdef HAVE_SERVER_SUPPORT
+# define HAVE_SEQ_SERVER
 
-#include <linux/types.h>
+struct req_capsule;
 
-#ifdef __KERNEL__
 struct seq_thread_info {
-        struct txn_param        sti_txn;
-        struct req_capsule      sti_pill;
-        struct lu_range         sti_space;
-        int                     sti_rep_buf_size[REQ_MAX_FIELD_NR];
+        struct req_capsule     *sti_pill;
+        struct lu_seq_range     sti_space;
         struct lu_buf           sti_buf;
 };
 
-extern struct lu_context_key seq_thread_key;
+enum {
+        SEQ_TXN_STORE_CREDITS = 20
+};
 
-/* Functions used internally in module. */
-int seq_client_alloc_super(struct lu_client_seq *seq,
-                           const struct lu_env *env);
+extern struct lu_context_key seq_thread_key;
 
-int seq_client_replay_super(struct lu_client_seq *seq,
-                            struct lu_range *range,
-                            const struct lu_env *env);
+extern struct lprocfs_vars seq_server_debugfs_list[];
 
 /* Store API functions. */
+struct dt_device;
+
 int seq_store_init(struct lu_server_seq *seq,
-                   const struct lu_env *env,
-                   struct dt_device *dt);
+                  const struct lu_env *env,
+                  struct dt_device *dt);
 
 void seq_store_fini(struct lu_server_seq *seq,
-                    const struct lu_env *env);
-
-int seq_store_write(struct lu_server_seq *seq,
-                    const struct lu_env *env);
+                   const struct lu_env *env);
 
 int seq_store_read(struct lu_server_seq *seq,
-                   const struct lu_env *env);
+                  const struct lu_env *env);
+
+int seq_store_update(const struct lu_env *env, struct lu_server_seq *seq,
+                    struct lu_seq_range *out, int sync);
+
+int seq_server_alloc_spec(struct lu_server_seq *seq,
+                         struct lu_seq_range *spec,
+                         const struct lu_env *env);
+
+int fid_server_mod_init(void);
 
-#ifdef LPROCFS
-extern struct lprocfs_vars seq_server_proc_list[];
-extern struct lprocfs_vars seq_client_proc_list[];
-#endif
+void fid_server_mod_exit(void);
+
+# endif /* HAVE_SERVER_SUPPORT */
+
+/* Functions used internally in module. */
+int seq_client_alloc_super(struct lu_client_seq *seq,
+                          const struct lu_env *env);
 
-#endif
+extern struct dentry *seq_debugfs_dir;
 
-extern cfs_proc_dir_entry_t *seq_type_proc_dir;
+extern struct lprocfs_vars seq_client_debugfs_list[];
 
 #endif /* __FID_INTERNAL_H */