Whamcloud - gitweb
c606170c039cfe317523e8ddf5acecfe7691493f
[fs/lustre-release.git] / lustre / ldlm / ldlm_test.c
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  *
4  * Copyright (C) 2002 Cluster File Systems, Inc.
5  *
6  * This code is issued under the GNU General Public License.
7  * See the file COPYING in this distribution
8  *
9  * by Cluster File Systems, Inc.
10  */
11
12 #define EXPORT_SYMTAB
13
14 #include <linux/version.h>
15 #include <linux/module.h>
16 #include <linux/slab.h>
17 #include <asm/unistd.h>
18
19 #define DEBUG_SUBSYSTEM S_LDLM
20
21 #include <linux/obd_support.h>
22 #include <linux/obd_class.h>
23
24 #include <linux/lustre_dlm.h>
25
26 static void ldlm_test_callback(struct ldlm_lock *lock, struct ldlm_lock *new)
27 {
28         printk("ldlm_test_callback: lock=%p, new=%p\n", lock, new);
29 }
30
31 int ldlm_test(struct obd_device *obddev)
32 {
33         struct ldlm_namespace *ns;
34         struct ldlm_resource *res;
35         __u32 res_id[RES_NAME_SIZE] = {1, 2, 3, 4, 5, 6};
36         ldlm_error_t err;
37         struct ldlm_handle h;
38
39         ns = ldlm_namespace_new(obddev, 1);
40         if (ns == NULL)
41                 BUG();
42
43         res = ldlm_resource_get(ns, NULL, res_id, 1);
44         if (res == NULL)
45                 BUG();
46
47         res->lr_blocking = ldlm_test_callback;
48
49         /* Get a couple of read locks */
50         err = ldlm_local_lock_enqueue(obddev, 1, NULL, NULL, res_id, 
51                                       LCK_CR, &h);
52         if (err != ELDLM_OK)
53                 BUG();
54
55         err = ldlm_local_lock_enqueue(obddev, 1, NULL, NULL, res_id, 
56                                       LCK_CR, &h);
57         if (err != ELDLM_OK)
58                 BUG();
59
60         ldlm_resource_dump(res);
61
62         return 0;
63 }