diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_vnode.h')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_vnode.h | 72 |
1 files changed, 3 insertions, 69 deletions
diff --git a/fs/xfs/linux-2.6/xfs_vnode.h b/fs/xfs/linux-2.6/xfs_vnode.h index 683ce16210ff..f65983a230d3 100644 --- a/fs/xfs/linux-2.6/xfs_vnode.h +++ b/fs/xfs/linux-2.6/xfs_vnode.h | |||
@@ -18,7 +18,10 @@ | |||
18 | #ifndef __XFS_VNODE_H__ | 18 | #ifndef __XFS_VNODE_H__ |
19 | #define __XFS_VNODE_H__ | 19 | #define __XFS_VNODE_H__ |
20 | 20 | ||
21 | #include "xfs_fs.h" | ||
22 | |||
21 | struct file; | 23 | struct file; |
24 | struct xfs_inode; | ||
22 | struct xfs_iomap; | 25 | struct xfs_iomap; |
23 | struct attrlist_cursor_kern; | 26 | struct attrlist_cursor_kern; |
24 | 27 | ||
@@ -51,40 +54,6 @@ struct attrlist_cursor_kern; | |||
51 | Prevent VM access to the pages until | 54 | Prevent VM access to the pages until |
52 | the operation completes. */ | 55 | the operation completes. */ |
53 | 56 | ||
54 | |||
55 | extern void vn_init(void); | ||
56 | |||
57 | /* | ||
58 | * Yeah, these don't take vnode anymore at all, all this should be | ||
59 | * cleaned up at some point. | ||
60 | */ | ||
61 | extern void vn_iowait(struct xfs_inode *ip); | ||
62 | extern void vn_iowake(struct xfs_inode *ip); | ||
63 | extern void vn_ioerror(struct xfs_inode *ip, int error, char *f, int l); | ||
64 | |||
65 | static inline int vn_count(struct inode *vp) | ||
66 | { | ||
67 | return atomic_read(&vp->i_count); | ||
68 | } | ||
69 | |||
70 | #define IHOLD(ip) \ | ||
71 | do { \ | ||
72 | ASSERT(atomic_read(&VFS_I(ip)->i_count) > 0) ; \ | ||
73 | atomic_inc(&(VFS_I(ip)->i_count)); \ | ||
74 | xfs_itrace_hold((ip), __FILE__, __LINE__, (inst_t *)__return_address); \ | ||
75 | } while (0) | ||
76 | |||
77 | #define IRELE(ip) \ | ||
78 | do { \ | ||
79 | xfs_itrace_rele((ip), __FILE__, __LINE__, (inst_t *)__return_address); \ | ||
80 | iput(VFS_I(ip)); \ | ||
81 | } while (0) | ||
82 | |||
83 | static inline struct inode *vn_grab(struct inode *vp) | ||
84 | { | ||
85 | return igrab(vp); | ||
86 | } | ||
87 | |||
88 | /* | 57 | /* |
89 | * Dealing with bad inodes | 58 | * Dealing with bad inodes |
90 | */ | 59 | */ |
@@ -121,39 +90,4 @@ static inline void vn_atime_to_time_t(struct inode *vp, time_t *tt) | |||
121 | PAGECACHE_TAG_DIRTY) | 90 | PAGECACHE_TAG_DIRTY) |
122 | 91 | ||
123 | 92 | ||
124 | /* | ||
125 | * Tracking vnode activity. | ||
126 | */ | ||
127 | #if defined(XFS_INODE_TRACE) | ||
128 | |||
129 | #define INODE_TRACE_SIZE 16 /* number of trace entries */ | ||
130 | #define INODE_KTRACE_ENTRY 1 | ||
131 | #define INODE_KTRACE_EXIT 2 | ||
132 | #define INODE_KTRACE_HOLD 3 | ||
133 | #define INODE_KTRACE_REF 4 | ||
134 | #define INODE_KTRACE_RELE 5 | ||
135 | |||
136 | extern void _xfs_itrace_entry(struct xfs_inode *, const char *, inst_t *); | ||
137 | extern void _xfs_itrace_exit(struct xfs_inode *, const char *, inst_t *); | ||
138 | extern void xfs_itrace_hold(struct xfs_inode *, char *, int, inst_t *); | ||
139 | extern void _xfs_itrace_ref(struct xfs_inode *, char *, int, inst_t *); | ||
140 | extern void xfs_itrace_rele(struct xfs_inode *, char *, int, inst_t *); | ||
141 | #define xfs_itrace_entry(ip) \ | ||
142 | _xfs_itrace_entry(ip, __func__, (inst_t *)__return_address) | ||
143 | #define xfs_itrace_exit(ip) \ | ||
144 | _xfs_itrace_exit(ip, __func__, (inst_t *)__return_address) | ||
145 | #define xfs_itrace_exit_tag(ip, tag) \ | ||
146 | _xfs_itrace_exit(ip, tag, (inst_t *)__return_address) | ||
147 | #define xfs_itrace_ref(ip) \ | ||
148 | _xfs_itrace_ref(ip, __FILE__, __LINE__, (inst_t *)__return_address) | ||
149 | |||
150 | #else | ||
151 | #define xfs_itrace_entry(a) | ||
152 | #define xfs_itrace_exit(a) | ||
153 | #define xfs_itrace_exit_tag(a, b) | ||
154 | #define xfs_itrace_hold(a, b, c, d) | ||
155 | #define xfs_itrace_ref(a) | ||
156 | #define xfs_itrace_rele(a, b, c, d) | ||
157 | #endif | ||
158 | |||
159 | #endif /* __XFS_VNODE_H__ */ | 93 | #endif /* __XFS_VNODE_H__ */ |