Whamcloud - gitweb
LU-6635 lfsck: block replacing the OST-object for test
[fs/lustre-release.git] / lustre / include / obd_target.h
1 /* GPL HEADER START
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 only,
7  * as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License version 2 for more details (a copy is included
13  * in the LICENSE file that accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License
16  * version 2 along with this program; If not, see
17  * http://www.gnu.org/licenses/gpl-2.0.html
18  *
19  * GPL HEADER END
20  */
21 /*
22  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
23  * Use is subject to license terms.
24  *
25  * Copyright (c) 2011, 2014, Intel Corporation.
26  */
27 /*
28  * This file is part of Lustre, http://www.lustre.org/
29  * Lustre is a trademark of Sun Microsystems, Inc.
30  */
31
32 #ifndef __OBD_TARGET_H
33 #define __OBD_TARGET_H
34
35 /* server-side individual type definitions */
36
37 #define OBT_MAGIC       0xBDDECEAE
38 /* hold common fields for "target" device */
39 struct obd_device_target {
40         __u32                   obt_magic;
41         __u32                   obt_instance;
42         struct lu_target       *obt_lut;
43         __u64                   obt_mount_count;
44         struct obd_job_stats    obt_jobstats;
45         struct nm_config_file   *obt_nodemap_config_file;
46 };
47
48 #define OBJ_SUBDIR_COUNT 32 /* set to zero for no subdirs */
49
50 struct filter_obd {
51         /* NB this field MUST be first */
52         struct obd_device_target         fo_obt;
53 };
54
55 struct echo_obd {
56         struct obd_device_target        eo_obt;
57         struct obdo                     eo_oa;
58         spinlock_t                      eo_lock;
59         u64                             eo_lastino;
60         struct lustre_handle            eo_nl_lock;
61         atomic_t                        eo_prep;
62 };
63
64 struct ost_obd {
65         struct ptlrpc_service   *ost_service;
66         struct ptlrpc_service   *ost_create_service;
67         struct ptlrpc_service   *ost_io_service;
68         struct ptlrpc_service   *ost_seq_service;
69         struct ptlrpc_service   *ost_out_service;
70         struct mutex             ost_health_mutex;
71 };
72
73 #endif /* __OBD_TARGET_H */