Whamcloud - gitweb
LU-12400 llite: Use the new vm_fault_t type
[fs/lustre-release.git] / lustre / include / lustre_mds.h
index dac9f11..cb43281 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.
  *
  * You should have received a copy of the GNU General Public License
  * version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
  *
  * GPL HEADER END
  */
 /*
- * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright (c) 2011, 2014, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
 #ifndef _LUSTRE_MDS_H
 #define _LUSTRE_MDS_H
 
+/** \defgroup mds mds
+ *
+ * @{
+ */
+
 #include <lustre_handles.h>
 #include <libcfs/libcfs.h>
-#include <lustre/lustre_idl.h>
+#include <uapi/linux/lustre/lustre_idl.h>
 #include <lustre_lib.h>
 #include <lustre_dlm.h>
-#include <lustre_log.h>
 #include <lustre_export.h>
 
-#if defined(__linux__)
-#include <linux/lustre_mds.h>
-#elif defined(__APPLE__)
-#include <darwin/lustre_mds.h>
-#elif defined(__WINNT__)
-#include <winnt/lustre_mds.h>
-#else
-#error Unsupported operating system.
-#endif
-
 struct mds_group_info {
         struct obd_uuid *uuid;
         int group;
 };
 
-/* mds/mds_lov.c */
-int mds_lov_write_objids(struct obd_device *obd);
-int mds_lov_prepare_objids(struct obd_device *obd, struct lov_mds_md *lmm);
-void mds_lov_update_objids(struct obd_device *obd, struct lov_mds_md *lmm);
+struct mds_capa_info {
+        struct obd_uuid        *uuid;
+        struct lustre_capa_key *capa;
+};
 
+struct md_rejig_data {
+       struct md_object        *mrd_obj;
+       __u16                   mrd_mirror_id;
+};
 
 #define MDD_OBD_NAME     "mdd_obd"
 #define MDD_OBD_UUID     "mdd_obd_uuid"
-#define MDD_OBD_TYPE     "mds"
 
-static inline int md_should_create(__u32 flags)
+static inline int md_should_create(u64 open_flags)
+{
+       return !(open_flags & MDS_OPEN_DELAY_CREATE) &&
+               (open_flags & MDS_FMODE_WRITE) &&
+              !(open_flags & MDS_OPEN_LEASE);
+}
+
+/* do NOT or the MAY_*'s, you'll get the weakest */
+static inline int mds_accmode(u64 open_flags)
 {
-       return !(flags & MDS_OPEN_DELAY_CREATE ||
-               !(flags & FMODE_WRITE));
+       int res = 0;
+
+       if (open_flags & MDS_FMODE_READ)
+               res |= MAY_READ;
+       if (open_flags & (MDS_FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND))
+               res |= MAY_WRITE;
+       if (open_flags & MDS_FMODE_EXEC)
+               res = MAY_EXEC;
+
+       return res;
 }
 
+/** @} mds */
+
 #endif