X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fldlm%2Fldlm_internal.h;h=3a79a527da9fc334829aa9ce3bd82a48b6f8c158;hb=bcdec9d320fd67022b9a72bf4fe2199a5f2d2b6a;hp=4111cbe05aa3004ac121cc95a052d003e612f407;hpb=ff17cc7e0282d9b1522810e0c5d12171c4d46a2d;p=fs%2Flustre-release.git diff --git a/lustre/ldlm/ldlm_internal.h b/lustre/ldlm/ldlm_internal.h index 4111cbe..3a79a52 100644 --- a/lustre/ldlm/ldlm_internal.h +++ b/lustre/ldlm/ldlm_internal.h @@ -1,9 +1,41 @@ +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- + * vim:expandtab:shiftwidth=8:tabstop=8: + * + * Copyright (c) 2002, 2003 Cluster File Systems, Inc. + * Author: Peter Braam + * Author: Phil Schwan + * + * This file is part of Lustre, http://www.lustre.org. + * + * Lustre is free 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. + * + * 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 + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Lustre; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + /* ldlm_request.c */ -int ldlm_cancel_lru(struct ldlm_namespace *ns); +typedef enum { + LDLM_ASYNC, + LDLM_SYNC, +} ldlm_sync_t; + +int ldlm_cancel_lru(struct ldlm_namespace *ns, ldlm_sync_t sync); + +/* ldlm_resource.c */ +void ldlm_resource_insert_lock_after(struct ldlm_lock *original, + struct ldlm_lock *new); /* ldlm_lock.c */ void ldlm_grant_lock(struct ldlm_lock *lock, void *data, int datalen, - int run_ast); + int run_ast); struct ldlm_lock * ldlm_lock_create(struct ldlm_namespace *ns, struct lustre_handle *parent_lock_handle, struct ldlm_res_id, @@ -22,6 +54,8 @@ int ldlm_run_ast_work(struct ldlm_namespace *, struct list_head *rpc_list); /* ldlm_lockd.c */ int ldlm_bl_to_thread(struct ldlm_namespace *ns, struct ldlm_lock_desc *ld, struct ldlm_lock *lock); +void ldlm_handle_bl_callback(struct ldlm_namespace *ns, + struct ldlm_lock_desc *ld, struct ldlm_lock *lock); /* ldlm_plain.c */ int ldlm_process_plain_lock(struct ldlm_lock *lock, int *flags, int first_enq, @@ -35,6 +69,10 @@ int ldlm_process_extent_lock(struct ldlm_lock *lock, int *flags, int first_enq, int ldlm_process_flock_lock(struct ldlm_lock *lock, int *flags, int first_enq, ldlm_error_t *err); +/* ldlm_inodebits.c */ +int ldlm_process_inodebits_lock(struct ldlm_lock *lock, int *flags, + int first_enq, ldlm_error_t *err); + /* l_lock.c */ void l_check_no_ns_lock(struct ldlm_namespace *ns);