1/* 2 * GPL HEADER START 3 * 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 only, 8 * as published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * General Public License version 2 for more details (a copy is included 14 * in the LICENSE file that accompanied this code). 15 * 16 * You should have received a copy of the GNU General Public License 17 * version 2 along with this program; If not, see 18 * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf 19 * 20 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 21 * CA 95054 USA or visit www.sun.com if you need additional information or 22 * have any questions. 23 * 24 * GPL HEADER END 25 */ 26/* 27 * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. 28 * Use is subject to license terms. 29 * 30 * Copyright (c) 2011, Intel Corporation. 31 */ 32/* 33 * This file is part of Lustre, http://www.lustre.org/ 34 * Lustre is a trademark of Sun Microsystems, Inc. 35 * 36 * lustre/ldlm/ldlm_inodebits.c 37 * 38 * Author: Peter Braam <braam@clusterfs.com> 39 * Author: Phil Schwan <phil@clusterfs.com> 40 */ 41 42/** 43 * This file contains implementation of IBITS lock type 44 * 45 * IBITS lock type contains a bit mask determining various properties of an 46 * object. The meanings of specific bits are specific to the caller and are 47 * opaque to LDLM code. 48 * 49 * Locks with intersecting bitmasks and conflicting lock modes (e.g. LCK_PW) 50 * are considered conflicting. See the lock mode compatibility matrix 51 * in lustre_dlm.h. 52 */ 53 54#define DEBUG_SUBSYSTEM S_LDLM 55 56#include <lustre_dlm.h> 57#include <obd_support.h> 58#include <lustre_lib.h> 59 60#include "ldlm_internal.h" 61 62 63void ldlm_ibits_policy_wire_to_local(const ldlm_wire_policy_data_t *wpolicy, 64 ldlm_policy_data_t *lpolicy) 65{ 66 memset(lpolicy, 0, sizeof(*lpolicy)); 67 lpolicy->l_inodebits.bits = wpolicy->l_inodebits.bits; 68} 69 70void ldlm_ibits_policy_local_to_wire(const ldlm_policy_data_t *lpolicy, 71 ldlm_wire_policy_data_t *wpolicy) 72{ 73 memset(wpolicy, 0, sizeof(*wpolicy)); 74 wpolicy->l_inodebits.bits = lpolicy->l_inodebits.bits; 75} 76