X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_mds.h;h=cb43281574890c0b5b9f0ce8d1a70a34629dbdc3;hb=a21c13d4df4bea1bec0f5804136740ed53d5a57f;hp=7f9f24d437b3a21c014e38399023fc1c0a94a3b7;hpb=69a3513021212ed1eb8823a50f80853e22e607b3;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_mds.h b/lustre/include/lustre_mds.h index 7f9f24d..cb43281 100644 --- a/lustre/include/lustre_mds.h +++ b/lustre/include/lustre_mds.h @@ -1,7 +1,35 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: +/* + * GPL HEADER START * - * This file is part of Lustre, http://www.lustre.org + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * 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 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 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 + * + * GPL HEADER END + */ +/* + * 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/ + * Lustre is a trademark of Sun Microsystems, Inc. + * + * lustre/include/lustre_mds.h * * MDS data structures. * See also lustre_idl.h for wire formats of requests. @@ -10,44 +38,58 @@ #ifndef _LUSTRE_MDS_H #define _LUSTRE_MDS_H +/** \defgroup mds mds + * + * @{ + */ + #include -#include -#include +#include +#include #include #include -#include #include -#if defined(__linux__) -#include -#elif defined(__APPLE__) -#include -#elif defined(__WINNT__) -#include -#else -#error Unsupported operating system. -#endif - struct mds_group_info { struct obd_uuid *uuid; int group; }; -/* mds/mds_reint.c */ -int mds_lov_write_objids(struct obd_device *obd); -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 MDS_LOV_MD_NAME "trusted.lov" -#define MDS_LMV_MD_NAME "trusted.lmv" -#define MDD_OBD_NAME "mdd_obd" -#define MDD_OBD_UUID "mdd_obd_uuid" -#define MDD_OBD_TYPE "mds" +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); +} -static inline int md_should_create(__u32 flags) +/* 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