diff options
author | Nathan Scott <nathans@sgi.com> | 2006-06-09 03:00:52 -0400 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2006-06-09 03:00:52 -0400 |
commit | 67fcaa73adafb19139a7cd8ab133592b6a0a0901 (patch) | |
tree | 6e7b83e7c8b0a1d8b4776af1537d6f07ebe9435d | |
parent | b83bd1388133e914c38bd31d69bc90143e6ab10c (diff) |
[XFS] Resolve a namespace collision on vnode/vnodeops for FreeBSD porters.
SGI-PV: 953338
SGI-Modid: xfs-linux-melb:xfs-kern:26107a
Signed-off-by: Nathan Scott <nathans@sgi.com>
36 files changed, 496 insertions, 636 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index c0a904316854..c5ea26d73bea 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c | |||
@@ -76,7 +76,7 @@ xfs_page_trace( | |||
76 | int mask) | 76 | int mask) |
77 | { | 77 | { |
78 | xfs_inode_t *ip; | 78 | xfs_inode_t *ip; |
79 | vnode_t *vp = vn_from_inode(inode); | 79 | bhv_vnode_t *vp = vn_from_inode(inode); |
80 | loff_t isize = i_size_read(inode); | 80 | loff_t isize = i_size_read(inode); |
81 | loff_t offset = page_offset(page); | 81 | loff_t offset = page_offset(page); |
82 | int delalloc = -1, unmapped = -1, unwritten = -1; | 82 | int delalloc = -1, unmapped = -1, unwritten = -1; |
@@ -181,13 +181,12 @@ xfs_end_bio_unwritten( | |||
181 | void *data) | 181 | void *data) |
182 | { | 182 | { |
183 | xfs_ioend_t *ioend = data; | 183 | xfs_ioend_t *ioend = data; |
184 | vnode_t *vp = ioend->io_vnode; | 184 | bhv_vnode_t *vp = ioend->io_vnode; |
185 | xfs_off_t offset = ioend->io_offset; | 185 | xfs_off_t offset = ioend->io_offset; |
186 | size_t size = ioend->io_size; | 186 | size_t size = ioend->io_size; |
187 | int error; | ||
188 | 187 | ||
189 | if (likely(!ioend->io_error)) | 188 | if (likely(!ioend->io_error)) |
190 | VOP_BMAP(vp, offset, size, BMAPI_UNWRITTEN, NULL, NULL, error); | 189 | bhv_vop_bmap(vp, offset, size, BMAPI_UNWRITTEN, NULL, NULL); |
191 | xfs_destroy_ioend(ioend); | 190 | xfs_destroy_ioend(ioend); |
192 | } | 191 | } |
193 | 192 | ||
@@ -240,10 +239,10 @@ xfs_map_blocks( | |||
240 | xfs_iomap_t *mapp, | 239 | xfs_iomap_t *mapp, |
241 | int flags) | 240 | int flags) |
242 | { | 241 | { |
243 | vnode_t *vp = vn_from_inode(inode); | 242 | bhv_vnode_t *vp = vn_from_inode(inode); |
244 | int error, nmaps = 1; | 243 | int error, nmaps = 1; |
245 | 244 | ||
246 | VOP_BMAP(vp, offset, count, flags, mapp, &nmaps, error); | 245 | error = bhv_vop_bmap(vp, offset, count, flags, mapp, &nmaps); |
247 | if (!error && (flags & (BMAPI_WRITE|BMAPI_ALLOCATE))) | 246 | if (!error && (flags & (BMAPI_WRITE|BMAPI_ALLOCATE))) |
248 | VMODIFY(vp); | 247 | VMODIFY(vp); |
249 | return -error; | 248 | return -error; |
@@ -1162,7 +1161,7 @@ xfs_vm_writepages( | |||
1162 | struct address_space *mapping, | 1161 | struct address_space *mapping, |
1163 | struct writeback_control *wbc) | 1162 | struct writeback_control *wbc) |
1164 | { | 1163 | { |
1165 | struct vnode *vp = vn_from_inode(mapping->host); | 1164 | struct bhv_vnode *vp = vn_from_inode(mapping->host); |
1166 | 1165 | ||
1167 | if (VN_TRUNC(vp)) | 1166 | if (VN_TRUNC(vp)) |
1168 | VUNTRUNCATE(vp); | 1167 | VUNTRUNCATE(vp); |
@@ -1242,7 +1241,7 @@ __xfs_get_blocks( | |||
1242 | int direct, | 1241 | int direct, |
1243 | bmapi_flags_t flags) | 1242 | bmapi_flags_t flags) |
1244 | { | 1243 | { |
1245 | vnode_t *vp = vn_from_inode(inode); | 1244 | bhv_vnode_t *vp = vn_from_inode(inode); |
1246 | xfs_iomap_t iomap; | 1245 | xfs_iomap_t iomap; |
1247 | xfs_off_t offset; | 1246 | xfs_off_t offset; |
1248 | ssize_t size; | 1247 | ssize_t size; |
@@ -1252,8 +1251,8 @@ __xfs_get_blocks( | |||
1252 | offset = (xfs_off_t)iblock << inode->i_blkbits; | 1251 | offset = (xfs_off_t)iblock << inode->i_blkbits; |
1253 | ASSERT(bh_result->b_size >= (1 << inode->i_blkbits)); | 1252 | ASSERT(bh_result->b_size >= (1 << inode->i_blkbits)); |
1254 | size = bh_result->b_size; | 1253 | size = bh_result->b_size; |
1255 | VOP_BMAP(vp, offset, size, | 1254 | error = bhv_vop_bmap(vp, offset, size, |
1256 | create ? flags : BMAPI_READ, &iomap, &niomap, error); | 1255 | create ? flags : BMAPI_READ, &iomap, &niomap); |
1257 | if (error) | 1256 | if (error) |
1258 | return -error; | 1257 | return -error; |
1259 | if (niomap == 0) | 1258 | if (niomap == 0) |
@@ -1381,13 +1380,13 @@ xfs_vm_direct_IO( | |||
1381 | { | 1380 | { |
1382 | struct file *file = iocb->ki_filp; | 1381 | struct file *file = iocb->ki_filp; |
1383 | struct inode *inode = file->f_mapping->host; | 1382 | struct inode *inode = file->f_mapping->host; |
1384 | vnode_t *vp = vn_from_inode(inode); | 1383 | bhv_vnode_t *vp = vn_from_inode(inode); |
1385 | xfs_iomap_t iomap; | 1384 | xfs_iomap_t iomap; |
1386 | int maps = 1; | 1385 | int maps = 1; |
1387 | int error; | 1386 | int error; |
1388 | ssize_t ret; | 1387 | ssize_t ret; |
1389 | 1388 | ||
1390 | VOP_BMAP(vp, offset, 0, BMAPI_DEVICE, &iomap, &maps, error); | 1389 | error = bhv_vop_bmap(vp, offset, 0, BMAPI_DEVICE, &iomap, &maps); |
1391 | if (error) | 1390 | if (error) |
1392 | return -error; | 1391 | return -error; |
1393 | 1392 | ||
@@ -1420,14 +1419,12 @@ xfs_vm_bmap( | |||
1420 | sector_t block) | 1419 | sector_t block) |
1421 | { | 1420 | { |
1422 | struct inode *inode = (struct inode *)mapping->host; | 1421 | struct inode *inode = (struct inode *)mapping->host; |
1423 | vnode_t *vp = vn_from_inode(inode); | 1422 | bhv_vnode_t *vp = vn_from_inode(inode); |
1424 | int error; | ||
1425 | 1423 | ||
1426 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); | 1424 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); |
1427 | 1425 | bhv_vop_rwlock(vp, VRWLOCK_READ); | |
1428 | VOP_RWLOCK(vp, VRWLOCK_READ); | 1426 | bhv_vop_flush_pages(vp, (xfs_off_t)0, -1, 0, FI_REMAPF); |
1429 | VOP_FLUSH_PAGES(vp, (xfs_off_t)0, -1, 0, FI_REMAPF, error); | 1427 | bhv_vop_rwunlock(vp, VRWLOCK_READ); |
1430 | VOP_RWUNLOCK(vp, VRWLOCK_READ); | ||
1431 | return generic_block_bmap(mapping, block, xfs_get_blocks); | 1428 | return generic_block_bmap(mapping, block, xfs_get_blocks); |
1432 | } | 1429 | } |
1433 | 1430 | ||
diff --git a/fs/xfs/linux-2.6/xfs_aops.h b/fs/xfs/linux-2.6/xfs_aops.h index 62c1d49025fd..706d8c781b8a 100644 --- a/fs/xfs/linux-2.6/xfs_aops.h +++ b/fs/xfs/linux-2.6/xfs_aops.h | |||
@@ -32,7 +32,7 @@ typedef struct xfs_ioend { | |||
32 | unsigned int io_type; /* delalloc / unwritten */ | 32 | unsigned int io_type; /* delalloc / unwritten */ |
33 | int io_error; /* I/O error code */ | 33 | int io_error; /* I/O error code */ |
34 | atomic_t io_remaining; /* hold count */ | 34 | atomic_t io_remaining; /* hold count */ |
35 | struct vnode *io_vnode; /* file being written to */ | 35 | struct bhv_vnode *io_vnode; /* file being written to */ |
36 | struct buffer_head *io_buffer_head;/* buffer linked list head */ | 36 | struct buffer_head *io_buffer_head;/* buffer linked list head */ |
37 | struct buffer_head *io_buffer_tail;/* buffer linked list tail */ | 37 | struct buffer_head *io_buffer_tail;/* buffer linked list tail */ |
38 | size_t io_size; /* size of the extent */ | 38 | size_t io_size; /* size of the extent */ |
diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c index b5c579eeb8ef..d32a9edc43a9 100644 --- a/fs/xfs/linux-2.6/xfs_export.c +++ b/fs/xfs/linux-2.6/xfs_export.c | |||
@@ -136,7 +136,7 @@ xfs_fs_get_dentry( | |||
136 | struct super_block *sb, | 136 | struct super_block *sb, |
137 | void *data) | 137 | void *data) |
138 | { | 138 | { |
139 | vnode_t *vp; | 139 | bhv_vnode_t *vp; |
140 | struct inode *inode; | 140 | struct inode *inode; |
141 | struct dentry *result; | 141 | struct dentry *result; |
142 | bhv_vfs_t *vfsp = vfs_from_sb(sb); | 142 | bhv_vfs_t *vfsp = vfs_from_sb(sb); |
@@ -160,12 +160,12 @@ xfs_fs_get_parent( | |||
160 | struct dentry *child) | 160 | struct dentry *child) |
161 | { | 161 | { |
162 | int error; | 162 | int error; |
163 | vnode_t *vp, *cvp; | 163 | bhv_vnode_t *vp, *cvp; |
164 | struct dentry *parent; | 164 | struct dentry *parent; |
165 | 165 | ||
166 | cvp = NULL; | 166 | cvp = NULL; |
167 | vp = vn_from_inode(child->d_inode); | 167 | vp = vn_from_inode(child->d_inode); |
168 | VOP_LOOKUP(vp, &dotdot, &cvp, 0, NULL, NULL, error); | 168 | error = bhv_vop_lookup(vp, &dotdot, &cvp, 0, NULL, NULL); |
169 | if (unlikely(error)) | 169 | if (unlikely(error)) |
170 | return ERR_PTR(-error); | 170 | return ERR_PTR(-error); |
171 | 171 | ||
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index 97615cc74ef5..89b1a7421357 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c | |||
@@ -58,15 +58,12 @@ __xfs_file_read( | |||
58 | { | 58 | { |
59 | struct iovec iov = {buf, count}; | 59 | struct iovec iov = {buf, count}; |
60 | struct file *file = iocb->ki_filp; | 60 | struct file *file = iocb->ki_filp; |
61 | vnode_t *vp = vn_from_inode(file->f_dentry->d_inode); | 61 | bhv_vnode_t *vp = vn_from_inode(file->f_dentry->d_inode); |
62 | ssize_t rval; | ||
63 | 62 | ||
64 | BUG_ON(iocb->ki_pos != pos); | 63 | BUG_ON(iocb->ki_pos != pos); |
65 | |||
66 | if (unlikely(file->f_flags & O_DIRECT)) | 64 | if (unlikely(file->f_flags & O_DIRECT)) |
67 | ioflags |= IO_ISDIRECT; | 65 | ioflags |= IO_ISDIRECT; |
68 | VOP_READ(vp, iocb, &iov, 1, &iocb->ki_pos, ioflags, NULL, rval); | 66 | return bhv_vop_read(vp, iocb, &iov, 1, &iocb->ki_pos, ioflags, NULL); |
69 | return rval; | ||
70 | } | 67 | } |
71 | 68 | ||
72 | STATIC ssize_t | 69 | STATIC ssize_t |
@@ -100,15 +97,12 @@ __xfs_file_write( | |||
100 | struct iovec iov = {(void __user *)buf, count}; | 97 | struct iovec iov = {(void __user *)buf, count}; |
101 | struct file *file = iocb->ki_filp; | 98 | struct file *file = iocb->ki_filp; |
102 | struct inode *inode = file->f_mapping->host; | 99 | struct inode *inode = file->f_mapping->host; |
103 | vnode_t *vp = vn_from_inode(inode); | 100 | bhv_vnode_t *vp = vn_from_inode(inode); |
104 | ssize_t rval; | ||
105 | 101 | ||
106 | BUG_ON(iocb->ki_pos != pos); | 102 | BUG_ON(iocb->ki_pos != pos); |
107 | if (unlikely(file->f_flags & O_DIRECT)) | 103 | if (unlikely(file->f_flags & O_DIRECT)) |
108 | ioflags |= IO_ISDIRECT; | 104 | ioflags |= IO_ISDIRECT; |
109 | 105 | return bhv_vop_write(vp, iocb, &iov, 1, &iocb->ki_pos, ioflags, NULL); | |
110 | VOP_WRITE(vp, iocb, &iov, 1, &iocb->ki_pos, ioflags, NULL, rval); | ||
111 | return rval; | ||
112 | } | 106 | } |
113 | 107 | ||
114 | STATIC ssize_t | 108 | STATIC ssize_t |
@@ -140,7 +134,7 @@ __xfs_file_readv( | |||
140 | loff_t *ppos) | 134 | loff_t *ppos) |
141 | { | 135 | { |
142 | struct inode *inode = file->f_mapping->host; | 136 | struct inode *inode = file->f_mapping->host; |
143 | vnode_t *vp = vn_from_inode(inode); | 137 | bhv_vnode_t *vp = vn_from_inode(inode); |
144 | struct kiocb kiocb; | 138 | struct kiocb kiocb; |
145 | ssize_t rval; | 139 | ssize_t rval; |
146 | 140 | ||
@@ -149,7 +143,8 @@ __xfs_file_readv( | |||
149 | 143 | ||
150 | if (unlikely(file->f_flags & O_DIRECT)) | 144 | if (unlikely(file->f_flags & O_DIRECT)) |
151 | ioflags |= IO_ISDIRECT; | 145 | ioflags |= IO_ISDIRECT; |
152 | VOP_READ(vp, &kiocb, iov, nr_segs, &kiocb.ki_pos, ioflags, NULL, rval); | 146 | rval = bhv_vop_read(vp, &kiocb, iov, nr_segs, |
147 | &kiocb.ki_pos, ioflags, NULL); | ||
153 | 148 | ||
154 | *ppos = kiocb.ki_pos; | 149 | *ppos = kiocb.ki_pos; |
155 | return rval; | 150 | return rval; |
@@ -184,7 +179,7 @@ __xfs_file_writev( | |||
184 | loff_t *ppos) | 179 | loff_t *ppos) |
185 | { | 180 | { |
186 | struct inode *inode = file->f_mapping->host; | 181 | struct inode *inode = file->f_mapping->host; |
187 | vnode_t *vp = vn_from_inode(inode); | 182 | bhv_vnode_t *vp = vn_from_inode(inode); |
188 | struct kiocb kiocb; | 183 | struct kiocb kiocb; |
189 | ssize_t rval; | 184 | ssize_t rval; |
190 | 185 | ||
@@ -193,7 +188,8 @@ __xfs_file_writev( | |||
193 | if (unlikely(file->f_flags & O_DIRECT)) | 188 | if (unlikely(file->f_flags & O_DIRECT)) |
194 | ioflags |= IO_ISDIRECT; | 189 | ioflags |= IO_ISDIRECT; |
195 | 190 | ||
196 | VOP_WRITE(vp, &kiocb, iov, nr_segs, &kiocb.ki_pos, ioflags, NULL, rval); | 191 | rval = bhv_vop_write(vp, &kiocb, iov, nr_segs, |
192 | &kiocb.ki_pos, ioflags, NULL); | ||
197 | 193 | ||
198 | *ppos = kiocb.ki_pos; | 194 | *ppos = kiocb.ki_pos; |
199 | return rval; | 195 | return rval; |
@@ -227,11 +223,8 @@ xfs_file_sendfile( | |||
227 | read_actor_t actor, | 223 | read_actor_t actor, |
228 | void *target) | 224 | void *target) |
229 | { | 225 | { |
230 | vnode_t *vp = vn_from_inode(filp->f_dentry->d_inode); | 226 | return bhv_vop_sendfile(vn_from_inode(filp->f_dentry->d_inode), |
231 | ssize_t rval; | 227 | filp, pos, 0, count, actor, target, NULL); |
232 | |||
233 | VOP_SENDFILE(vp, filp, pos, 0, count, actor, target, NULL, rval); | ||
234 | return rval; | ||
235 | } | 228 | } |
236 | 229 | ||
237 | STATIC ssize_t | 230 | STATIC ssize_t |
@@ -242,11 +235,8 @@ xfs_file_sendfile_invis( | |||
242 | read_actor_t actor, | 235 | read_actor_t actor, |
243 | void *target) | 236 | void *target) |
244 | { | 237 | { |
245 | vnode_t *vp = vn_from_inode(filp->f_dentry->d_inode); | 238 | return bhv_vop_sendfile(vn_from_inode(filp->f_dentry->d_inode), |
246 | ssize_t rval; | 239 | filp, pos, IO_INVIS, count, actor, target, NULL); |
247 | |||
248 | VOP_SENDFILE(vp, filp, pos, IO_INVIS, count, actor, target, NULL, rval); | ||
249 | return rval; | ||
250 | } | 240 | } |
251 | 241 | ||
252 | STATIC ssize_t | 242 | STATIC ssize_t |
@@ -257,11 +247,8 @@ xfs_file_splice_read( | |||
257 | size_t len, | 247 | size_t len, |
258 | unsigned int flags) | 248 | unsigned int flags) |
259 | { | 249 | { |
260 | vnode_t *vp = vn_from_inode(infilp->f_dentry->d_inode); | 250 | return bhv_vop_splice_read(vn_from_inode(infilp->f_dentry->d_inode), |
261 | ssize_t rval; | 251 | infilp, ppos, pipe, len, flags, 0, NULL); |
262 | |||
263 | VOP_SPLICE_READ(vp, infilp, ppos, pipe, len, flags, 0, NULL, rval); | ||
264 | return rval; | ||
265 | } | 252 | } |
266 | 253 | ||
267 | STATIC ssize_t | 254 | STATIC ssize_t |
@@ -272,11 +259,9 @@ xfs_file_splice_read_invis( | |||
272 | size_t len, | 259 | size_t len, |
273 | unsigned int flags) | 260 | unsigned int flags) |
274 | { | 261 | { |
275 | vnode_t *vp = vn_from_inode(infilp->f_dentry->d_inode); | 262 | return bhv_vop_splice_read(vn_from_inode(infilp->f_dentry->d_inode), |
276 | ssize_t rval; | 263 | infilp, ppos, pipe, len, flags, IO_INVIS, |
277 | 264 | NULL); | |
278 | VOP_SPLICE_READ(vp, infilp, ppos, pipe, len, flags, IO_INVIS, NULL, rval); | ||
279 | return rval; | ||
280 | } | 265 | } |
281 | 266 | ||
282 | STATIC ssize_t | 267 | STATIC ssize_t |
@@ -287,11 +272,8 @@ xfs_file_splice_write( | |||
287 | size_t len, | 272 | size_t len, |
288 | unsigned int flags) | 273 | unsigned int flags) |
289 | { | 274 | { |
290 | vnode_t *vp = vn_from_inode(outfilp->f_dentry->d_inode); | 275 | return bhv_vop_splice_write(vn_from_inode(outfilp->f_dentry->d_inode), |
291 | ssize_t rval; | 276 | pipe, outfilp, ppos, len, flags, 0, NULL); |
292 | |||
293 | VOP_SPLICE_WRITE(vp, pipe, outfilp, ppos, len, flags, 0, NULL, rval); | ||
294 | return rval; | ||
295 | } | 277 | } |
296 | 278 | ||
297 | STATIC ssize_t | 279 | STATIC ssize_t |
@@ -302,11 +284,9 @@ xfs_file_splice_write_invis( | |||
302 | size_t len, | 284 | size_t len, |
303 | unsigned int flags) | 285 | unsigned int flags) |
304 | { | 286 | { |
305 | vnode_t *vp = vn_from_inode(outfilp->f_dentry->d_inode); | 287 | return bhv_vop_splice_write(vn_from_inode(outfilp->f_dentry->d_inode), |
306 | ssize_t rval; | 288 | pipe, outfilp, ppos, len, flags, IO_INVIS, |
307 | 289 | NULL); | |
308 | VOP_SPLICE_WRITE(vp, pipe, outfilp, ppos, len, flags, IO_INVIS, NULL, rval); | ||
309 | return rval; | ||
310 | } | 290 | } |
311 | 291 | ||
312 | STATIC int | 292 | STATIC int |
@@ -314,24 +294,17 @@ xfs_file_open( | |||
314 | struct inode *inode, | 294 | struct inode *inode, |
315 | struct file *filp) | 295 | struct file *filp) |
316 | { | 296 | { |
317 | vnode_t *vp = vn_from_inode(inode); | ||
318 | int error; | ||
319 | |||
320 | if (!(filp->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) | 297 | if (!(filp->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) |
321 | return -EFBIG; | 298 | return -EFBIG; |
322 | VOP_OPEN(vp, NULL, error); | 299 | return -bhv_vop_open(vn_from_inode(inode), NULL); |
323 | return -error; | ||
324 | } | 300 | } |
325 | 301 | ||
326 | STATIC int | 302 | STATIC int |
327 | xfs_file_close( | 303 | xfs_file_close( |
328 | struct file *filp) | 304 | struct file *filp) |
329 | { | 305 | { |
330 | vnode_t *vp = vn_from_inode(filp->f_dentry->d_inode); | 306 | return -bhv_vop_close(vn_from_inode(filp->f_dentry->d_inode), 0, |
331 | int error; | 307 | file_count(filp) > 1 ? L_FALSE : L_TRUE, NULL); |
332 | |||
333 | VOP_CLOSE(vp, 0, file_count(filp) > 1 ? L_FALSE : L_TRUE, NULL, error); | ||
334 | return -error; | ||
335 | } | 308 | } |
336 | 309 | ||
337 | STATIC int | 310 | STATIC int |
@@ -339,12 +312,11 @@ xfs_file_release( | |||
339 | struct inode *inode, | 312 | struct inode *inode, |
340 | struct file *filp) | 313 | struct file *filp) |
341 | { | 314 | { |
342 | vnode_t *vp = vn_from_inode(inode); | 315 | bhv_vnode_t *vp = vn_from_inode(inode); |
343 | int error = 0; | ||
344 | 316 | ||
345 | if (vp) | 317 | if (vp) |
346 | VOP_RELEASE(vp, error); | 318 | return -bhv_vop_release(vp); |
347 | return -error; | 319 | return 0; |
348 | } | 320 | } |
349 | 321 | ||
350 | STATIC int | 322 | STATIC int |
@@ -353,17 +325,14 @@ xfs_file_fsync( | |||
353 | struct dentry *dentry, | 325 | struct dentry *dentry, |
354 | int datasync) | 326 | int datasync) |
355 | { | 327 | { |
356 | struct inode *inode = dentry->d_inode; | 328 | bhv_vnode_t *vp = vn_from_inode(dentry->d_inode); |
357 | vnode_t *vp = vn_from_inode(inode); | ||
358 | int error; | ||
359 | int flags = FSYNC_WAIT; | 329 | int flags = FSYNC_WAIT; |
360 | 330 | ||
361 | if (datasync) | 331 | if (datasync) |
362 | flags |= FSYNC_DATA; | 332 | flags |= FSYNC_DATA; |
363 | if (VN_TRUNC(vp)) | 333 | if (VN_TRUNC(vp)) |
364 | VUNTRUNCATE(vp); | 334 | VUNTRUNCATE(vp); |
365 | VOP_FSYNC(vp, flags, NULL, (xfs_off_t)0, (xfs_off_t)-1, error); | 335 | return -bhv_vop_fsync(vp, flags, NULL, (xfs_off_t)0, (xfs_off_t)-1); |
366 | return -error; | ||
367 | } | 336 | } |
368 | 337 | ||
369 | #ifdef CONFIG_XFS_DMAPI | 338 | #ifdef CONFIG_XFS_DMAPI |
@@ -374,7 +343,7 @@ xfs_vm_nopage( | |||
374 | int *type) | 343 | int *type) |
375 | { | 344 | { |
376 | struct inode *inode = area->vm_file->f_dentry->d_inode; | 345 | struct inode *inode = area->vm_file->f_dentry->d_inode; |
377 | vnode_t *vp = vn_from_inode(inode); | 346 | bhv_vnode_t *vp = vn_from_inode(inode); |
378 | 347 | ||
379 | ASSERT_ALWAYS(vp->v_vfsp->vfs_flag & VFS_DMI); | 348 | ASSERT_ALWAYS(vp->v_vfsp->vfs_flag & VFS_DMI); |
380 | if (XFS_SEND_MMAP(XFS_VFSTOM(vp->v_vfsp), area, 0)) | 349 | if (XFS_SEND_MMAP(XFS_VFSTOM(vp->v_vfsp), area, 0)) |
@@ -390,7 +359,7 @@ xfs_file_readdir( | |||
390 | filldir_t filldir) | 359 | filldir_t filldir) |
391 | { | 360 | { |
392 | int error = 0; | 361 | int error = 0; |
393 | vnode_t *vp = vn_from_inode(filp->f_dentry->d_inode); | 362 | bhv_vnode_t *vp = vn_from_inode(filp->f_dentry->d_inode); |
394 | uio_t uio; | 363 | uio_t uio; |
395 | iovec_t iov; | 364 | iovec_t iov; |
396 | int eof = 0; | 365 | int eof = 0; |
@@ -425,7 +394,7 @@ xfs_file_readdir( | |||
425 | 394 | ||
426 | start_offset = uio.uio_offset; | 395 | start_offset = uio.uio_offset; |
427 | 396 | ||
428 | VOP_READDIR(vp, &uio, NULL, &eof, error); | 397 | error = bhv_vop_readdir(vp, &uio, NULL, &eof); |
429 | if ((uio.uio_offset == start_offset) || error) { | 398 | if ((uio.uio_offset == start_offset) || error) { |
430 | size = 0; | 399 | size = 0; |
431 | break; | 400 | break; |
@@ -475,18 +444,17 @@ xfs_file_mmap( | |||
475 | return 0; | 444 | return 0; |
476 | } | 445 | } |
477 | 446 | ||
478 | |||
479 | STATIC long | 447 | STATIC long |
480 | xfs_file_ioctl( | 448 | xfs_file_ioctl( |
481 | struct file *filp, | 449 | struct file *filp, |
482 | unsigned int cmd, | 450 | unsigned int cmd, |
483 | unsigned long arg) | 451 | unsigned long p) |
484 | { | 452 | { |
485 | int error; | 453 | int error; |
486 | struct inode *inode = filp->f_dentry->d_inode; | 454 | struct inode *inode = filp->f_dentry->d_inode; |
487 | vnode_t *vp = vn_from_inode(inode); | 455 | bhv_vnode_t *vp = vn_from_inode(inode); |
488 | 456 | ||
489 | VOP_IOCTL(vp, inode, filp, 0, cmd, (void __user *)arg, error); | 457 | error = bhv_vop_ioctl(vp, inode, filp, 0, cmd, (void __user *)p); |
490 | VMODIFY(vp); | 458 | VMODIFY(vp); |
491 | 459 | ||
492 | /* NOTE: some of the ioctl's return positive #'s as a | 460 | /* NOTE: some of the ioctl's return positive #'s as a |
@@ -502,13 +470,13 @@ STATIC long | |||
502 | xfs_file_ioctl_invis( | 470 | xfs_file_ioctl_invis( |
503 | struct file *filp, | 471 | struct file *filp, |
504 | unsigned int cmd, | 472 | unsigned int cmd, |
505 | unsigned long arg) | 473 | unsigned long p) |
506 | { | 474 | { |
507 | struct inode *inode = filp->f_dentry->d_inode; | ||
508 | vnode_t *vp = vn_from_inode(inode); | ||
509 | int error; | 475 | int error; |
476 | struct inode *inode = filp->f_dentry->d_inode; | ||
477 | bhv_vnode_t *vp = vn_from_inode(inode); | ||
510 | 478 | ||
511 | VOP_IOCTL(vp, inode, filp, IO_INVIS, cmd, (void __user *)arg, error); | 479 | error = bhv_vop_ioctl(vp, inode, filp, IO_INVIS, cmd, (void __user *)p); |
512 | VMODIFY(vp); | 480 | VMODIFY(vp); |
513 | 481 | ||
514 | /* NOTE: some of the ioctl's return positive #'s as a | 482 | /* NOTE: some of the ioctl's return positive #'s as a |
@@ -527,7 +495,7 @@ xfs_vm_mprotect( | |||
527 | struct vm_area_struct *vma, | 495 | struct vm_area_struct *vma, |
528 | unsigned int newflags) | 496 | unsigned int newflags) |
529 | { | 497 | { |
530 | vnode_t *vp = vn_from_inode(vma->vm_file->f_dentry->d_inode); | 498 | bhv_vnode_t *vp = vn_from_inode(vma->vm_file->f_dentry->d_inode); |
531 | int error = 0; | 499 | int error = 0; |
532 | 500 | ||
533 | if (vp->v_vfsp->vfs_flag & VFS_DMI) { | 501 | if (vp->v_vfsp->vfs_flag & VFS_DMI) { |
@@ -553,7 +521,7 @@ STATIC int | |||
553 | xfs_file_open_exec( | 521 | xfs_file_open_exec( |
554 | struct inode *inode) | 522 | struct inode *inode) |
555 | { | 523 | { |
556 | vnode_t *vp = vn_from_inode(inode); | 524 | bhv_vnode_t *vp = vn_from_inode(inode); |
557 | xfs_mount_t *mp = XFS_VFSTOM(vp->v_vfsp); | 525 | xfs_mount_t *mp = XFS_VFSTOM(vp->v_vfsp); |
558 | int error = 0; | 526 | int error = 0; |
559 | xfs_inode_t *ip; | 527 | xfs_inode_t *ip; |
diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c index f0c56daf4d6d..dc0562828e76 100644 --- a/fs/xfs/linux-2.6/xfs_fs_subr.c +++ b/fs/xfs/linux-2.6/xfs_fs_subr.c | |||
@@ -28,7 +28,7 @@ fs_tosspages( | |||
28 | xfs_off_t last, | 28 | xfs_off_t last, |
29 | int fiopt) | 29 | int fiopt) |
30 | { | 30 | { |
31 | vnode_t *vp = BHV_TO_VNODE(bdp); | 31 | bhv_vnode_t *vp = BHV_TO_VNODE(bdp); |
32 | struct inode *ip = vn_to_inode(vp); | 32 | struct inode *ip = vn_to_inode(vp); |
33 | 33 | ||
34 | if (VN_CACHED(vp)) | 34 | if (VN_CACHED(vp)) |
@@ -42,7 +42,7 @@ fs_flushinval_pages( | |||
42 | xfs_off_t last, | 42 | xfs_off_t last, |
43 | int fiopt) | 43 | int fiopt) |
44 | { | 44 | { |
45 | vnode_t *vp = BHV_TO_VNODE(bdp); | 45 | bhv_vnode_t *vp = BHV_TO_VNODE(bdp); |
46 | struct inode *ip = vn_to_inode(vp); | 46 | struct inode *ip = vn_to_inode(vp); |
47 | 47 | ||
48 | if (VN_CACHED(vp)) { | 48 | if (VN_CACHED(vp)) { |
@@ -61,7 +61,7 @@ fs_flush_pages( | |||
61 | uint64_t flags, | 61 | uint64_t flags, |
62 | int fiopt) | 62 | int fiopt) |
63 | { | 63 | { |
64 | vnode_t *vp = BHV_TO_VNODE(bdp); | 64 | bhv_vnode_t *vp = BHV_TO_VNODE(bdp); |
65 | struct inode *ip = vn_to_inode(vp); | 65 | struct inode *ip = vn_to_inode(vp); |
66 | 66 | ||
67 | if (VN_DIRTY(vp)) { | 67 | if (VN_DIRTY(vp)) { |
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 84478491609b..73182503c16e 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c | |||
@@ -78,7 +78,7 @@ xfs_find_handle( | |||
78 | xfs_handle_t handle; | 78 | xfs_handle_t handle; |
79 | xfs_fsop_handlereq_t hreq; | 79 | xfs_fsop_handlereq_t hreq; |
80 | struct inode *inode; | 80 | struct inode *inode; |
81 | struct vnode *vp; | 81 | bhv_vnode_t *vp; |
82 | 82 | ||
83 | if (copy_from_user(&hreq, arg, sizeof(hreq))) | 83 | if (copy_from_user(&hreq, arg, sizeof(hreq))) |
84 | return -XFS_ERROR(EFAULT); | 84 | return -XFS_ERROR(EFAULT); |
@@ -192,7 +192,7 @@ xfs_vget_fsop_handlereq( | |||
192 | xfs_mount_t *mp, | 192 | xfs_mount_t *mp, |
193 | struct inode *parinode, /* parent inode pointer */ | 193 | struct inode *parinode, /* parent inode pointer */ |
194 | xfs_fsop_handlereq_t *hreq, | 194 | xfs_fsop_handlereq_t *hreq, |
195 | vnode_t **vp, | 195 | bhv_vnode_t **vp, |
196 | struct inode **inode) | 196 | struct inode **inode) |
197 | { | 197 | { |
198 | void __user *hanp; | 198 | void __user *hanp; |
@@ -202,7 +202,7 @@ xfs_vget_fsop_handlereq( | |||
202 | xfs_handle_t handle; | 202 | xfs_handle_t handle; |
203 | xfs_inode_t *ip; | 203 | xfs_inode_t *ip; |
204 | struct inode *inodep; | 204 | struct inode *inodep; |
205 | vnode_t *vpp; | 205 | bhv_vnode_t *vpp; |
206 | xfs_ino_t ino; | 206 | xfs_ino_t ino; |
207 | __u32 igen; | 207 | __u32 igen; |
208 | int error; | 208 | int error; |
@@ -277,7 +277,7 @@ xfs_open_by_handle( | |||
277 | struct file *filp; | 277 | struct file *filp; |
278 | struct inode *inode; | 278 | struct inode *inode; |
279 | struct dentry *dentry; | 279 | struct dentry *dentry; |
280 | vnode_t *vp; | 280 | bhv_vnode_t *vp; |
281 | xfs_fsop_handlereq_t hreq; | 281 | xfs_fsop_handlereq_t hreq; |
282 | 282 | ||
283 | if (!capable(CAP_SYS_ADMIN)) | 283 | if (!capable(CAP_SYS_ADMIN)) |
@@ -362,7 +362,7 @@ xfs_readlink_by_handle( | |||
362 | struct uio auio; | 362 | struct uio auio; |
363 | struct inode *inode; | 363 | struct inode *inode; |
364 | xfs_fsop_handlereq_t hreq; | 364 | xfs_fsop_handlereq_t hreq; |
365 | vnode_t *vp; | 365 | bhv_vnode_t *vp; |
366 | __u32 olen; | 366 | __u32 olen; |
367 | 367 | ||
368 | if (!capable(CAP_SYS_ADMIN)) | 368 | if (!capable(CAP_SYS_ADMIN)) |
@@ -393,9 +393,11 @@ xfs_readlink_by_handle( | |||
393 | auio.uio_segflg = UIO_USERSPACE; | 393 | auio.uio_segflg = UIO_USERSPACE; |
394 | auio.uio_resid = olen; | 394 | auio.uio_resid = olen; |
395 | 395 | ||
396 | VOP_READLINK(vp, &auio, IO_INVIS, NULL, error); | 396 | error = bhv_vop_readlink(vp, &auio, IO_INVIS, NULL); |
397 | |||
398 | VN_RELE(vp); | 397 | VN_RELE(vp); |
398 | if (error) | ||
399 | return -error; | ||
400 | |||
399 | return (olen - auio.uio_resid); | 401 | return (olen - auio.uio_resid); |
400 | } | 402 | } |
401 | 403 | ||
@@ -411,7 +413,7 @@ xfs_fssetdm_by_handle( | |||
411 | xfs_fsop_setdm_handlereq_t dmhreq; | 413 | xfs_fsop_setdm_handlereq_t dmhreq; |
412 | struct inode *inode; | 414 | struct inode *inode; |
413 | bhv_desc_t *bdp; | 415 | bhv_desc_t *bdp; |
414 | vnode_t *vp; | 416 | bhv_vnode_t *vp; |
415 | 417 | ||
416 | if (!capable(CAP_MKNOD)) | 418 | if (!capable(CAP_MKNOD)) |
417 | return -XFS_ERROR(EPERM); | 419 | return -XFS_ERROR(EPERM); |
@@ -452,7 +454,7 @@ xfs_attrlist_by_handle( | |||
452 | attrlist_cursor_kern_t *cursor; | 454 | attrlist_cursor_kern_t *cursor; |
453 | xfs_fsop_attrlist_handlereq_t al_hreq; | 455 | xfs_fsop_attrlist_handlereq_t al_hreq; |
454 | struct inode *inode; | 456 | struct inode *inode; |
455 | vnode_t *vp; | 457 | bhv_vnode_t *vp; |
456 | char *kbuf; | 458 | char *kbuf; |
457 | 459 | ||
458 | if (!capable(CAP_SYS_ADMIN)) | 460 | if (!capable(CAP_SYS_ADMIN)) |
@@ -472,8 +474,8 @@ xfs_attrlist_by_handle( | |||
472 | goto out_vn_rele; | 474 | goto out_vn_rele; |
473 | 475 | ||
474 | cursor = (attrlist_cursor_kern_t *)&al_hreq.pos; | 476 | cursor = (attrlist_cursor_kern_t *)&al_hreq.pos; |
475 | VOP_ATTR_LIST(vp, kbuf, al_hreq.buflen, al_hreq.flags, | 477 | error = bhv_vop_attr_list(vp, kbuf, al_hreq.buflen, al_hreq.flags, |
476 | cursor, NULL, error); | 478 | cursor, NULL); |
477 | if (error) | 479 | if (error) |
478 | goto out_kfree; | 480 | goto out_kfree; |
479 | 481 | ||
@@ -490,7 +492,7 @@ xfs_attrlist_by_handle( | |||
490 | 492 | ||
491 | STATIC int | 493 | STATIC int |
492 | xfs_attrmulti_attr_get( | 494 | xfs_attrmulti_attr_get( |
493 | struct vnode *vp, | 495 | bhv_vnode_t *vp, |
494 | char *name, | 496 | char *name, |
495 | char __user *ubuf, | 497 | char __user *ubuf, |
496 | __uint32_t *len, | 498 | __uint32_t *len, |
@@ -505,7 +507,7 @@ xfs_attrmulti_attr_get( | |||
505 | if (!kbuf) | 507 | if (!kbuf) |
506 | return ENOMEM; | 508 | return ENOMEM; |
507 | 509 | ||
508 | VOP_ATTR_GET(vp, name, kbuf, len, flags, NULL, error); | 510 | error = bhv_vop_attr_get(vp, name, kbuf, len, flags, NULL); |
509 | if (error) | 511 | if (error) |
510 | goto out_kfree; | 512 | goto out_kfree; |
511 | 513 | ||
@@ -519,7 +521,7 @@ xfs_attrmulti_attr_get( | |||
519 | 521 | ||
520 | STATIC int | 522 | STATIC int |
521 | xfs_attrmulti_attr_set( | 523 | xfs_attrmulti_attr_set( |
522 | struct vnode *vp, | 524 | bhv_vnode_t *vp, |
523 | char *name, | 525 | char *name, |
524 | const char __user *ubuf, | 526 | const char __user *ubuf, |
525 | __uint32_t len, | 527 | __uint32_t len, |
@@ -542,7 +544,7 @@ xfs_attrmulti_attr_set( | |||
542 | if (copy_from_user(kbuf, ubuf, len)) | 544 | if (copy_from_user(kbuf, ubuf, len)) |
543 | goto out_kfree; | 545 | goto out_kfree; |
544 | 546 | ||
545 | VOP_ATTR_SET(vp, name, kbuf, len, flags, NULL, error); | 547 | error = bhv_vop_attr_set(vp, name, kbuf, len, flags, NULL); |
546 | 548 | ||
547 | out_kfree: | 549 | out_kfree: |
548 | kfree(kbuf); | 550 | kfree(kbuf); |
@@ -551,20 +553,15 @@ xfs_attrmulti_attr_set( | |||
551 | 553 | ||
552 | STATIC int | 554 | STATIC int |
553 | xfs_attrmulti_attr_remove( | 555 | xfs_attrmulti_attr_remove( |
554 | struct vnode *vp, | 556 | bhv_vnode_t *vp, |
555 | char *name, | 557 | char *name, |
556 | __uint32_t flags) | 558 | __uint32_t flags) |
557 | { | 559 | { |
558 | int error; | ||
559 | |||
560 | |||
561 | if (IS_RDONLY(&vp->v_inode)) | 560 | if (IS_RDONLY(&vp->v_inode)) |
562 | return -EROFS; | 561 | return -EROFS; |
563 | if (IS_IMMUTABLE(&vp->v_inode) || IS_APPEND(&vp->v_inode)) | 562 | if (IS_IMMUTABLE(&vp->v_inode) || IS_APPEND(&vp->v_inode)) |
564 | return EPERM; | 563 | return EPERM; |
565 | 564 | return bhv_vop_attr_remove(vp, name, flags, NULL); | |
566 | VOP_ATTR_REMOVE(vp, name, flags, NULL, error); | ||
567 | return error; | ||
568 | } | 565 | } |
569 | 566 | ||
570 | STATIC int | 567 | STATIC int |
@@ -578,7 +575,7 @@ xfs_attrmulti_by_handle( | |||
578 | xfs_attr_multiop_t *ops; | 575 | xfs_attr_multiop_t *ops; |
579 | xfs_fsop_attrmulti_handlereq_t am_hreq; | 576 | xfs_fsop_attrmulti_handlereq_t am_hreq; |
580 | struct inode *inode; | 577 | struct inode *inode; |
581 | vnode_t *vp; | 578 | bhv_vnode_t *vp; |
582 | unsigned int i, size; | 579 | unsigned int i, size; |
583 | char *attr_name; | 580 | char *attr_name; |
584 | 581 | ||
@@ -658,7 +655,7 @@ xfs_attrmulti_by_handle( | |||
658 | STATIC int | 655 | STATIC int |
659 | xfs_ioc_space( | 656 | xfs_ioc_space( |
660 | bhv_desc_t *bdp, | 657 | bhv_desc_t *bdp, |
661 | vnode_t *vp, | 658 | bhv_vnode_t *vp, |
662 | struct file *filp, | 659 | struct file *filp, |
663 | int flags, | 660 | int flags, |
664 | unsigned int cmd, | 661 | unsigned int cmd, |
@@ -682,7 +679,7 @@ xfs_ioc_fsgeometry( | |||
682 | 679 | ||
683 | STATIC int | 680 | STATIC int |
684 | xfs_ioc_xattr( | 681 | xfs_ioc_xattr( |
685 | vnode_t *vp, | 682 | bhv_vnode_t *vp, |
686 | xfs_inode_t *ip, | 683 | xfs_inode_t *ip, |
687 | struct file *filp, | 684 | struct file *filp, |
688 | unsigned int cmd, | 685 | unsigned int cmd, |
@@ -711,7 +708,7 @@ xfs_ioctl( | |||
711 | void __user *arg) | 708 | void __user *arg) |
712 | { | 709 | { |
713 | int error; | 710 | int error; |
714 | vnode_t *vp; | 711 | bhv_vnode_t *vp; |
715 | xfs_inode_t *ip; | 712 | xfs_inode_t *ip; |
716 | xfs_mount_t *mp; | 713 | xfs_mount_t *mp; |
717 | 714 | ||
@@ -962,7 +959,7 @@ xfs_ioctl( | |||
962 | STATIC int | 959 | STATIC int |
963 | xfs_ioc_space( | 960 | xfs_ioc_space( |
964 | bhv_desc_t *bdp, | 961 | bhv_desc_t *bdp, |
965 | vnode_t *vp, | 962 | bhv_vnode_t *vp, |
966 | struct file *filp, | 963 | struct file *filp, |
967 | int ioflags, | 964 | int ioflags, |
968 | unsigned int cmd, | 965 | unsigned int cmd, |
@@ -1153,7 +1150,7 @@ xfs_di2lxflags( | |||
1153 | 1150 | ||
1154 | STATIC int | 1151 | STATIC int |
1155 | xfs_ioc_xattr( | 1152 | xfs_ioc_xattr( |
1156 | vnode_t *vp, | 1153 | bhv_vnode_t *vp, |
1157 | xfs_inode_t *ip, | 1154 | xfs_inode_t *ip, |
1158 | struct file *filp, | 1155 | struct file *filp, |
1159 | unsigned int cmd, | 1156 | unsigned int cmd, |
@@ -1173,7 +1170,7 @@ xfs_ioc_xattr( | |||
1173 | case XFS_IOC_FSGETXATTR: { | 1170 | case XFS_IOC_FSGETXATTR: { |
1174 | vattr->va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | \ | 1171 | vattr->va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | \ |
1175 | XFS_AT_NEXTENTS | XFS_AT_PROJID; | 1172 | XFS_AT_NEXTENTS | XFS_AT_PROJID; |
1176 | VOP_GETATTR(vp, vattr, 0, NULL, error); | 1173 | error = bhv_vop_getattr(vp, vattr, 0, NULL); |
1177 | if (unlikely(error)) { | 1174 | if (unlikely(error)) { |
1178 | error = -error; | 1175 | error = -error; |
1179 | break; | 1176 | break; |
@@ -1206,7 +1203,7 @@ xfs_ioc_xattr( | |||
1206 | vattr->va_extsize = fa.fsx_extsize; | 1203 | vattr->va_extsize = fa.fsx_extsize; |
1207 | vattr->va_projid = fa.fsx_projid; | 1204 | vattr->va_projid = fa.fsx_projid; |
1208 | 1205 | ||
1209 | VOP_SETATTR(vp, vattr, attr_flags, NULL, error); | 1206 | error = bhv_vop_setattr(vp, vattr, attr_flags, NULL); |
1210 | if (likely(!error)) | 1207 | if (likely(!error)) |
1211 | __vn_revalidate(vp, vattr); /* update flags */ | 1208 | __vn_revalidate(vp, vattr); /* update flags */ |
1212 | error = -error; | 1209 | error = -error; |
@@ -1216,7 +1213,7 @@ xfs_ioc_xattr( | |||
1216 | case XFS_IOC_FSGETXATTRA: { | 1213 | case XFS_IOC_FSGETXATTRA: { |
1217 | vattr->va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | \ | 1214 | vattr->va_mask = XFS_AT_XFLAGS | XFS_AT_EXTSIZE | \ |
1218 | XFS_AT_ANEXTENTS | XFS_AT_PROJID; | 1215 | XFS_AT_ANEXTENTS | XFS_AT_PROJID; |
1219 | VOP_GETATTR(vp, vattr, 0, NULL, error); | 1216 | error = bhv_vop_getattr(vp, vattr, 0, NULL); |
1220 | if (unlikely(error)) { | 1217 | if (unlikely(error)) { |
1221 | error = -error; | 1218 | error = -error; |
1222 | break; | 1219 | break; |
@@ -1262,7 +1259,7 @@ xfs_ioc_xattr( | |||
1262 | vattr->va_xflags = xfs_merge_ioc_xflags(flags, | 1259 | vattr->va_xflags = xfs_merge_ioc_xflags(flags, |
1263 | xfs_ip2xflags(ip)); | 1260 | xfs_ip2xflags(ip)); |
1264 | 1261 | ||
1265 | VOP_SETATTR(vp, vattr, attr_flags, NULL, error); | 1262 | error = bhv_vop_setattr(vp, vattr, attr_flags, NULL); |
1266 | if (likely(!error)) | 1263 | if (likely(!error)) |
1267 | __vn_revalidate(vp, vattr); /* update flags */ | 1264 | __vn_revalidate(vp, vattr); /* update flags */ |
1268 | error = -error; | 1265 | error = -error; |
diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c index 251bfe451a3f..601f01c92f7f 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c | |||
@@ -114,7 +114,7 @@ xfs_compat_ioctl( | |||
114 | unsigned long arg) | 114 | unsigned long arg) |
115 | { | 115 | { |
116 | struct inode *inode = file->f_dentry->d_inode; | 116 | struct inode *inode = file->f_dentry->d_inode; |
117 | vnode_t *vp = vn_from_inode(inode); | 117 | bhv_vnode_t *vp = vn_from_inode(inode); |
118 | int error; | 118 | int error; |
119 | 119 | ||
120 | switch (cmd) { | 120 | switch (cmd) { |
@@ -193,7 +193,7 @@ xfs_compat_ioctl( | |||
193 | return -ENOIOCTLCMD; | 193 | return -ENOIOCTLCMD; |
194 | } | 194 | } |
195 | 195 | ||
196 | VOP_IOCTL(vp, inode, file, mode, cmd, (void __user *)arg, error); | 196 | error = bhv_vop_ioctl(vp, inode, file, mode, cmd, (void __user *)arg); |
197 | VMODIFY(vp); | 197 | VMODIFY(vp); |
198 | 198 | ||
199 | return error; | 199 | return error; |
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 0da1d6b081e7..0857658882e0 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c | |||
@@ -61,7 +61,7 @@ | |||
61 | */ | 61 | */ |
62 | xfs_inode_t * | 62 | xfs_inode_t * |
63 | xfs_vtoi( | 63 | xfs_vtoi( |
64 | struct vnode *vp) | 64 | bhv_vnode_t *vp) |
65 | { | 65 | { |
66 | bhv_desc_t *bdp; | 66 | bhv_desc_t *bdp; |
67 | 67 | ||
@@ -80,7 +80,7 @@ void | |||
80 | xfs_synchronize_atime( | 80 | xfs_synchronize_atime( |
81 | xfs_inode_t *ip) | 81 | xfs_inode_t *ip) |
82 | { | 82 | { |
83 | vnode_t *vp; | 83 | bhv_vnode_t *vp; |
84 | 84 | ||
85 | vp = XFS_ITOV_NULL(ip); | 85 | vp = XFS_ITOV_NULL(ip); |
86 | if (vp) { | 86 | if (vp) { |
@@ -202,12 +202,8 @@ xfs_validate_fields( | |||
202 | struct inode *ip, | 202 | struct inode *ip, |
203 | struct vattr *vattr) | 203 | struct vattr *vattr) |
204 | { | 204 | { |
205 | vnode_t *vp = vn_from_inode(ip); | ||
206 | int error; | ||
207 | |||
208 | vattr->va_mask = XFS_AT_NLINK|XFS_AT_SIZE|XFS_AT_NBLOCKS; | 205 | vattr->va_mask = XFS_AT_NLINK|XFS_AT_SIZE|XFS_AT_NBLOCKS; |
209 | VOP_GETATTR(vp, vattr, ATTR_LAZY, NULL, error); | 206 | if (!bhv_vop_getattr(vn_from_inode(ip), vattr, ATTR_LAZY, NULL)) { |
210 | if (likely(!error)) { | ||
211 | ip->i_nlink = vattr->va_nlink; | 207 | ip->i_nlink = vattr->va_nlink; |
212 | ip->i_blocks = vattr->va_nblocks; | 208 | ip->i_blocks = vattr->va_nblocks; |
213 | 209 | ||
@@ -225,7 +221,7 @@ xfs_validate_fields( | |||
225 | */ | 221 | */ |
226 | STATIC int | 222 | STATIC int |
227 | xfs_init_security( | 223 | xfs_init_security( |
228 | struct vnode *vp, | 224 | bhv_vnode_t *vp, |
229 | struct inode *dir) | 225 | struct inode *dir) |
230 | { | 226 | { |
231 | struct inode *ip = vn_to_inode(vp); | 227 | struct inode *ip = vn_to_inode(vp); |
@@ -241,7 +237,7 @@ xfs_init_security( | |||
241 | return -error; | 237 | return -error; |
242 | } | 238 | } |
243 | 239 | ||
244 | VOP_ATTR_SET(vp, name, value, length, ATTR_SECURE, NULL, error); | 240 | error = bhv_vop_attr_set(vp, name, value, length, ATTR_SECURE, NULL); |
245 | if (!error) | 241 | if (!error) |
246 | VMODIFY(vp); | 242 | VMODIFY(vp); |
247 | 243 | ||
@@ -264,13 +260,12 @@ xfs_has_fs_struct(struct task_struct *task) | |||
264 | 260 | ||
265 | STATIC inline void | 261 | STATIC inline void |
266 | xfs_cleanup_inode( | 262 | xfs_cleanup_inode( |
267 | vnode_t *dvp, | 263 | bhv_vnode_t *dvp, |
268 | vnode_t *vp, | 264 | bhv_vnode_t *vp, |
269 | struct dentry *dentry, | 265 | struct dentry *dentry, |
270 | int mode) | 266 | int mode) |
271 | { | 267 | { |
272 | struct dentry teardown = {}; | 268 | struct dentry teardown = {}; |
273 | int error; | ||
274 | 269 | ||
275 | /* Oh, the horror. | 270 | /* Oh, the horror. |
276 | * If we can't add the ACL or we fail in | 271 | * If we can't add the ACL or we fail in |
@@ -281,9 +276,9 @@ xfs_cleanup_inode( | |||
281 | teardown.d_name = dentry->d_name; | 276 | teardown.d_name = dentry->d_name; |
282 | 277 | ||
283 | if (S_ISDIR(mode)) | 278 | if (S_ISDIR(mode)) |
284 | VOP_RMDIR(dvp, &teardown, NULL, error); | 279 | bhv_vop_rmdir(dvp, &teardown, NULL); |
285 | else | 280 | else |
286 | VOP_REMOVE(dvp, &teardown, NULL, error); | 281 | bhv_vop_remove(dvp, &teardown, NULL); |
287 | VN_RELE(vp); | 282 | VN_RELE(vp); |
288 | } | 283 | } |
289 | 284 | ||
@@ -296,7 +291,7 @@ xfs_vn_mknod( | |||
296 | { | 291 | { |
297 | struct inode *ip; | 292 | struct inode *ip; |
298 | vattr_t vattr = { 0 }; | 293 | vattr_t vattr = { 0 }; |
299 | vnode_t *vp = NULL, *dvp = vn_from_inode(dir); | 294 | bhv_vnode_t *vp = NULL, *dvp = vn_from_inode(dir); |
300 | xfs_acl_t *default_acl = NULL; | 295 | xfs_acl_t *default_acl = NULL; |
301 | attrexists_t test_default_acl = _ACL_DEFAULT_EXISTS; | 296 | attrexists_t test_default_acl = _ACL_DEFAULT_EXISTS; |
302 | int error; | 297 | int error; |
@@ -330,10 +325,10 @@ xfs_vn_mknod( | |||
330 | vattr.va_mask |= XFS_AT_RDEV; | 325 | vattr.va_mask |= XFS_AT_RDEV; |
331 | /*FALLTHROUGH*/ | 326 | /*FALLTHROUGH*/ |
332 | case S_IFREG: | 327 | case S_IFREG: |
333 | VOP_CREATE(dvp, dentry, &vattr, &vp, NULL, error); | 328 | error = bhv_vop_create(dvp, dentry, &vattr, &vp, NULL); |
334 | break; | 329 | break; |
335 | case S_IFDIR: | 330 | case S_IFDIR: |
336 | VOP_MKDIR(dvp, dentry, &vattr, &vp, NULL, error); | 331 | error = bhv_vop_mkdir(dvp, dentry, &vattr, &vp, NULL); |
337 | break; | 332 | break; |
338 | default: | 333 | default: |
339 | error = EINVAL; | 334 | error = EINVAL; |
@@ -396,14 +391,14 @@ xfs_vn_lookup( | |||
396 | struct dentry *dentry, | 391 | struct dentry *dentry, |
397 | struct nameidata *nd) | 392 | struct nameidata *nd) |
398 | { | 393 | { |
399 | struct vnode *vp = vn_from_inode(dir), *cvp; | 394 | bhv_vnode_t *vp = vn_from_inode(dir), *cvp; |
400 | int error; | 395 | int error; |
401 | 396 | ||
402 | if (dentry->d_name.len >= MAXNAMELEN) | 397 | if (dentry->d_name.len >= MAXNAMELEN) |
403 | return ERR_PTR(-ENAMETOOLONG); | 398 | return ERR_PTR(-ENAMETOOLONG); |
404 | 399 | ||
405 | VOP_LOOKUP(vp, dentry, &cvp, 0, NULL, NULL, error); | 400 | error = bhv_vop_lookup(vp, dentry, &cvp, 0, NULL, NULL); |
406 | if (error) { | 401 | if (unlikely(error)) { |
407 | if (unlikely(error != ENOENT)) | 402 | if (unlikely(error != ENOENT)) |
408 | return ERR_PTR(-error); | 403 | return ERR_PTR(-error); |
409 | d_add(dentry, NULL); | 404 | d_add(dentry, NULL); |
@@ -420,8 +415,8 @@ xfs_vn_link( | |||
420 | struct dentry *dentry) | 415 | struct dentry *dentry) |
421 | { | 416 | { |
422 | struct inode *ip; /* inode of guy being linked to */ | 417 | struct inode *ip; /* inode of guy being linked to */ |
423 | vnode_t *tdvp; /* target directory for new name/link */ | 418 | bhv_vnode_t *tdvp; /* target directory for new name/link */ |
424 | vnode_t *vp; /* vp of name being linked */ | 419 | bhv_vnode_t *vp; /* vp of name being linked */ |
425 | vattr_t vattr; | 420 | vattr_t vattr; |
426 | int error; | 421 | int error; |
427 | 422 | ||
@@ -432,7 +427,7 @@ xfs_vn_link( | |||
432 | tdvp = vn_from_inode(dir); | 427 | tdvp = vn_from_inode(dir); |
433 | vp = vn_from_inode(ip); | 428 | vp = vn_from_inode(ip); |
434 | 429 | ||
435 | VOP_LINK(tdvp, vp, dentry, NULL, error); | 430 | error = bhv_vop_link(tdvp, vp, dentry, NULL); |
436 | if (likely(!error)) { | 431 | if (likely(!error)) { |
437 | VMODIFY(tdvp); | 432 | VMODIFY(tdvp); |
438 | VN_HOLD(vp); | 433 | VN_HOLD(vp); |
@@ -448,14 +443,14 @@ xfs_vn_unlink( | |||
448 | struct dentry *dentry) | 443 | struct dentry *dentry) |
449 | { | 444 | { |
450 | struct inode *inode; | 445 | struct inode *inode; |
451 | vnode_t *dvp; /* directory containing name to remove */ | 446 | bhv_vnode_t *dvp; /* directory containing name to remove */ |
452 | vattr_t vattr; | 447 | vattr_t vattr; |
453 | int error; | 448 | int error; |
454 | 449 | ||
455 | inode = dentry->d_inode; | 450 | inode = dentry->d_inode; |
456 | dvp = vn_from_inode(dir); | 451 | dvp = vn_from_inode(dir); |
457 | 452 | ||
458 | VOP_REMOVE(dvp, dentry, NULL, error); | 453 | error = bhv_vop_remove(dvp, dentry, NULL); |
459 | if (likely(!error)) { | 454 | if (likely(!error)) { |
460 | xfs_validate_fields(dir, &vattr); /* size needs update */ | 455 | xfs_validate_fields(dir, &vattr); /* size needs update */ |
461 | xfs_validate_fields(inode, &vattr); | 456 | xfs_validate_fields(inode, &vattr); |
@@ -470,27 +465,26 @@ xfs_vn_symlink( | |||
470 | const char *symname) | 465 | const char *symname) |
471 | { | 466 | { |
472 | struct inode *ip; | 467 | struct inode *ip; |
473 | vattr_t vattr = { 0 }; | 468 | vattr_t va = { 0 }; |
474 | vnode_t *dvp; /* directory containing name of symlink */ | 469 | bhv_vnode_t *dvp; /* directory containing name of symlink */ |
475 | vnode_t *cvp; /* used to lookup symlink to put in dentry */ | 470 | bhv_vnode_t *cvp; /* used to lookup symlink to put in dentry */ |
476 | int error; | 471 | int error; |
477 | 472 | ||
478 | dvp = vn_from_inode(dir); | 473 | dvp = vn_from_inode(dir); |
479 | cvp = NULL; | 474 | cvp = NULL; |
480 | 475 | ||
481 | vattr.va_mode = S_IFLNK | | 476 | va.va_mode = S_IFLNK | |
482 | (irix_symlink_mode ? 0777 & ~current->fs->umask : S_IRWXUGO); | 477 | (irix_symlink_mode ? 0777 & ~current->fs->umask : S_IRWXUGO); |
483 | vattr.va_mask = XFS_AT_TYPE|XFS_AT_MODE; | 478 | va.va_mask = XFS_AT_TYPE|XFS_AT_MODE; |
484 | 479 | ||
485 | error = 0; | 480 | error = bhv_vop_symlink(dvp, dentry, &va, (char *)symname, &cvp, NULL); |
486 | VOP_SYMLINK(dvp, dentry, &vattr, (char *)symname, &cvp, NULL, error); | ||
487 | if (likely(!error && cvp)) { | 481 | if (likely(!error && cvp)) { |
488 | error = xfs_init_security(cvp, dir); | 482 | error = xfs_init_security(cvp, dir); |
489 | if (likely(!error)) { | 483 | if (likely(!error)) { |
490 | ip = vn_to_inode(cvp); | 484 | ip = vn_to_inode(cvp); |
491 | d_instantiate(dentry, ip); | 485 | d_instantiate(dentry, ip); |
492 | xfs_validate_fields(dir, &vattr); | 486 | xfs_validate_fields(dir, &va); |
493 | xfs_validate_fields(ip, &vattr); | 487 | xfs_validate_fields(ip, &va); |
494 | } else { | 488 | } else { |
495 | xfs_cleanup_inode(dvp, cvp, dentry, 0); | 489 | xfs_cleanup_inode(dvp, cvp, dentry, 0); |
496 | } | 490 | } |
@@ -504,11 +498,11 @@ xfs_vn_rmdir( | |||
504 | struct dentry *dentry) | 498 | struct dentry *dentry) |
505 | { | 499 | { |
506 | struct inode *inode = dentry->d_inode; | 500 | struct inode *inode = dentry->d_inode; |
507 | vnode_t *dvp = vn_from_inode(dir); | 501 | bhv_vnode_t *dvp = vn_from_inode(dir); |
508 | vattr_t vattr; | 502 | vattr_t vattr; |
509 | int error; | 503 | int error; |
510 | 504 | ||
511 | VOP_RMDIR(dvp, dentry, NULL, error); | 505 | error = bhv_vop_rmdir(dvp, dentry, NULL); |
512 | if (likely(!error)) { | 506 | if (likely(!error)) { |
513 | xfs_validate_fields(inode, &vattr); | 507 | xfs_validate_fields(inode, &vattr); |
514 | xfs_validate_fields(dir, &vattr); | 508 | xfs_validate_fields(dir, &vattr); |
@@ -524,15 +518,15 @@ xfs_vn_rename( | |||
524 | struct dentry *ndentry) | 518 | struct dentry *ndentry) |
525 | { | 519 | { |
526 | struct inode *new_inode = ndentry->d_inode; | 520 | struct inode *new_inode = ndentry->d_inode; |
527 | vnode_t *fvp; /* from directory */ | 521 | bhv_vnode_t *fvp; /* from directory */ |
528 | vnode_t *tvp; /* target directory */ | 522 | bhv_vnode_t *tvp; /* target directory */ |
529 | vattr_t vattr; | 523 | vattr_t vattr; |
530 | int error; | 524 | int error; |
531 | 525 | ||
532 | fvp = vn_from_inode(odir); | 526 | fvp = vn_from_inode(odir); |
533 | tvp = vn_from_inode(ndir); | 527 | tvp = vn_from_inode(ndir); |
534 | 528 | ||
535 | VOP_RENAME(fvp, odentry, tvp, ndentry, NULL, error); | 529 | error = bhv_vop_rename(fvp, odentry, tvp, ndentry, NULL); |
536 | if (likely(!error)) { | 530 | if (likely(!error)) { |
537 | if (new_inode) | 531 | if (new_inode) |
538 | xfs_validate_fields(new_inode, &vattr); | 532 | xfs_validate_fields(new_inode, &vattr); |
@@ -553,7 +547,7 @@ xfs_vn_follow_link( | |||
553 | struct dentry *dentry, | 547 | struct dentry *dentry, |
554 | struct nameidata *nd) | 548 | struct nameidata *nd) |
555 | { | 549 | { |
556 | vnode_t *vp; | 550 | bhv_vnode_t *vp; |
557 | uio_t *uio; | 551 | uio_t *uio; |
558 | iovec_t iov; | 552 | iovec_t iov; |
559 | int error; | 553 | int error; |
@@ -586,8 +580,8 @@ xfs_vn_follow_link( | |||
586 | uio->uio_resid = MAXPATHLEN; | 580 | uio->uio_resid = MAXPATHLEN; |
587 | uio->uio_iovcnt = 1; | 581 | uio->uio_iovcnt = 1; |
588 | 582 | ||
589 | VOP_READLINK(vp, uio, 0, NULL, error); | 583 | error = bhv_vop_readlink(vp, uio, 0, NULL); |
590 | if (error) { | 584 | if (unlikely(error)) { |
591 | kfree(link); | 585 | kfree(link); |
592 | link = ERR_PTR(-error); | 586 | link = ERR_PTR(-error); |
593 | } else { | 587 | } else { |
@@ -618,12 +612,7 @@ xfs_vn_permission( | |||
618 | int mode, | 612 | int mode, |
619 | struct nameidata *nd) | 613 | struct nameidata *nd) |
620 | { | 614 | { |
621 | vnode_t *vp = vn_from_inode(inode); | 615 | return -bhv_vop_access(vn_from_inode(inode), mode << 6, NULL); |
622 | int error; | ||
623 | |||
624 | mode <<= 6; /* convert from linux to vnode access bits */ | ||
625 | VOP_ACCESS(vp, mode, NULL, error); | ||
626 | return -error; | ||
627 | } | 616 | } |
628 | #else | 617 | #else |
629 | #define xfs_vn_permission NULL | 618 | #define xfs_vn_permission NULL |
@@ -636,7 +625,7 @@ xfs_vn_getattr( | |||
636 | struct kstat *stat) | 625 | struct kstat *stat) |
637 | { | 626 | { |
638 | struct inode *inode = dentry->d_inode; | 627 | struct inode *inode = dentry->d_inode; |
639 | vnode_t *vp = vn_from_inode(inode); | 628 | bhv_vnode_t *vp = vn_from_inode(inode); |
640 | int error = 0; | 629 | int error = 0; |
641 | 630 | ||
642 | if (unlikely(vp->v_flag & VMODIFIED)) | 631 | if (unlikely(vp->v_flag & VMODIFIED)) |
@@ -653,7 +642,7 @@ xfs_vn_setattr( | |||
653 | { | 642 | { |
654 | struct inode *inode = dentry->d_inode; | 643 | struct inode *inode = dentry->d_inode; |
655 | unsigned int ia_valid = attr->ia_valid; | 644 | unsigned int ia_valid = attr->ia_valid; |
656 | vnode_t *vp = vn_from_inode(inode); | 645 | bhv_vnode_t *vp = vn_from_inode(inode); |
657 | vattr_t vattr = { 0 }; | 646 | vattr_t vattr = { 0 }; |
658 | int flags = 0; | 647 | int flags = 0; |
659 | int error; | 648 | int error; |
@@ -697,7 +686,7 @@ xfs_vn_setattr( | |||
697 | flags |= ATTR_NONBLOCK; | 686 | flags |= ATTR_NONBLOCK; |
698 | #endif | 687 | #endif |
699 | 688 | ||
700 | VOP_SETATTR(vp, &vattr, flags, NULL, error); | 689 | error = bhv_vop_setattr(vp, &vattr, flags, NULL); |
701 | if (likely(!error)) | 690 | if (likely(!error)) |
702 | __vn_revalidate(vp, &vattr); | 691 | __vn_revalidate(vp, &vattr); |
703 | return -error; | 692 | return -error; |
@@ -718,7 +707,7 @@ xfs_vn_setxattr( | |||
718 | size_t size, | 707 | size_t size, |
719 | int flags) | 708 | int flags) |
720 | { | 709 | { |
721 | vnode_t *vp = vn_from_inode(dentry->d_inode); | 710 | bhv_vnode_t *vp = vn_from_inode(dentry->d_inode); |
722 | char *attr = (char *)name; | 711 | char *attr = (char *)name; |
723 | attrnames_t *namesp; | 712 | attrnames_t *namesp; |
724 | int xflags = 0; | 713 | int xflags = 0; |
@@ -748,7 +737,7 @@ xfs_vn_getxattr( | |||
748 | void *data, | 737 | void *data, |
749 | size_t size) | 738 | size_t size) |
750 | { | 739 | { |
751 | vnode_t *vp = vn_from_inode(dentry->d_inode); | 740 | bhv_vnode_t *vp = vn_from_inode(dentry->d_inode); |
752 | char *attr = (char *)name; | 741 | char *attr = (char *)name; |
753 | attrnames_t *namesp; | 742 | attrnames_t *namesp; |
754 | int xflags = 0; | 743 | int xflags = 0; |
@@ -777,7 +766,7 @@ xfs_vn_listxattr( | |||
777 | char *data, | 766 | char *data, |
778 | size_t size) | 767 | size_t size) |
779 | { | 768 | { |
780 | vnode_t *vp = vn_from_inode(dentry->d_inode); | 769 | bhv_vnode_t *vp = vn_from_inode(dentry->d_inode); |
781 | int error, xflags = ATTR_KERNAMELS; | 770 | int error, xflags = ATTR_KERNAMELS; |
782 | ssize_t result; | 771 | ssize_t result; |
783 | 772 | ||
@@ -796,7 +785,7 @@ xfs_vn_removexattr( | |||
796 | struct dentry *dentry, | 785 | struct dentry *dentry, |
797 | const char *name) | 786 | const char *name) |
798 | { | 787 | { |
799 | vnode_t *vp = vn_from_inode(dentry->d_inode); | 788 | bhv_vnode_t *vp = vn_from_inode(dentry->d_inode); |
800 | char *attr = (char *)name; | 789 | char *attr = (char *)name; |
801 | attrnames_t *namesp; | 790 | attrnames_t *namesp; |
802 | int xflags = 0; | 791 | int xflags = 0; |
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c index 6fbdca3eaa7a..a9b83018f0fb 100644 --- a/fs/xfs/linux-2.6/xfs_lrw.c +++ b/fs/xfs/linux-2.6/xfs_lrw.c | |||
@@ -206,7 +206,7 @@ xfs_read( | |||
206 | xfs_fsize_t n; | 206 | xfs_fsize_t n; |
207 | xfs_inode_t *ip; | 207 | xfs_inode_t *ip; |
208 | xfs_mount_t *mp; | 208 | xfs_mount_t *mp; |
209 | vnode_t *vp; | 209 | bhv_vnode_t *vp; |
210 | unsigned long seg; | 210 | unsigned long seg; |
211 | 211 | ||
212 | ip = XFS_BHVTOI(bdp); | 212 | ip = XFS_BHVTOI(bdp); |
@@ -271,7 +271,7 @@ xfs_read( | |||
271 | } | 271 | } |
272 | 272 | ||
273 | if (unlikely((ioflags & IO_ISDIRECT) && VN_CACHED(vp))) | 273 | if (unlikely((ioflags & IO_ISDIRECT) && VN_CACHED(vp))) |
274 | VOP_FLUSHINVAL_PAGES(vp, ctooff(offtoct(*offset)), | 274 | bhv_vop_flushinval_pages(vp, ctooff(offtoct(*offset)), |
275 | -1, FI_REMAPF_LOCKED); | 275 | -1, FI_REMAPF_LOCKED); |
276 | 276 | ||
277 | xfs_rw_enter_trace(XFS_READ_ENTER, &ip->i_iocore, | 277 | xfs_rw_enter_trace(XFS_READ_ENTER, &ip->i_iocore, |
@@ -499,7 +499,7 @@ xfs_zero_last_block( | |||
499 | 499 | ||
500 | int /* error (positive) */ | 500 | int /* error (positive) */ |
501 | xfs_zero_eof( | 501 | xfs_zero_eof( |
502 | vnode_t *vp, | 502 | bhv_vnode_t *vp, |
503 | xfs_iocore_t *io, | 503 | xfs_iocore_t *io, |
504 | xfs_off_t offset, /* starting I/O offset */ | 504 | xfs_off_t offset, /* starting I/O offset */ |
505 | xfs_fsize_t isize, /* current inode size */ | 505 | xfs_fsize_t isize, /* current inode size */ |
@@ -626,7 +626,7 @@ xfs_write( | |||
626 | ssize_t ret = 0, error = 0; | 626 | ssize_t ret = 0, error = 0; |
627 | xfs_fsize_t isize, new_size; | 627 | xfs_fsize_t isize, new_size; |
628 | xfs_iocore_t *io; | 628 | xfs_iocore_t *io; |
629 | vnode_t *vp; | 629 | bhv_vnode_t *vp; |
630 | unsigned long seg; | 630 | unsigned long seg; |
631 | int iolock; | 631 | int iolock; |
632 | int eventsent = 0; | 632 | int eventsent = 0; |
@@ -803,7 +803,7 @@ retry: | |||
803 | if (need_flush) { | 803 | if (need_flush) { |
804 | xfs_inval_cached_trace(io, pos, -1, | 804 | xfs_inval_cached_trace(io, pos, -1, |
805 | ctooff(offtoct(pos)), -1); | 805 | ctooff(offtoct(pos)), -1); |
806 | VOP_FLUSHINVAL_PAGES(vp, ctooff(offtoct(pos)), | 806 | bhv_vop_flushinval_pages(vp, ctooff(offtoct(pos)), |
807 | -1, FI_REMAPF_LOCKED); | 807 | -1, FI_REMAPF_LOCKED); |
808 | } | 808 | } |
809 | 809 | ||
diff --git a/fs/xfs/linux-2.6/xfs_lrw.h b/fs/xfs/linux-2.6/xfs_lrw.h index dc49050688ca..c77e62efb742 100644 --- a/fs/xfs/linux-2.6/xfs_lrw.h +++ b/fs/xfs/linux-2.6/xfs_lrw.h | |||
@@ -18,8 +18,8 @@ | |||
18 | #ifndef __XFS_LRW_H__ | 18 | #ifndef __XFS_LRW_H__ |
19 | #define __XFS_LRW_H__ | 19 | #define __XFS_LRW_H__ |
20 | 20 | ||
21 | struct vnode; | ||
22 | struct bhv_desc; | 21 | struct bhv_desc; |
22 | struct bhv_vnode; | ||
23 | struct xfs_mount; | 23 | struct xfs_mount; |
24 | struct xfs_iocore; | 24 | struct xfs_iocore; |
25 | struct xfs_inode; | 25 | struct xfs_inode; |
@@ -82,7 +82,7 @@ extern int xfsbdstrat(struct xfs_mount *, struct xfs_buf *); | |||
82 | extern int xfs_bdstrat_cb(struct xfs_buf *); | 82 | extern int xfs_bdstrat_cb(struct xfs_buf *); |
83 | extern int xfs_dev_is_read_only(struct xfs_mount *, char *); | 83 | extern int xfs_dev_is_read_only(struct xfs_mount *, char *); |
84 | 84 | ||
85 | extern int xfs_zero_eof(struct vnode *, struct xfs_iocore *, xfs_off_t, | 85 | extern int xfs_zero_eof(struct bhv_vnode *, struct xfs_iocore *, xfs_off_t, |
86 | xfs_fsize_t, xfs_fsize_t); | 86 | xfs_fsize_t, xfs_fsize_t); |
87 | extern ssize_t xfs_read(struct bhv_desc *, struct kiocb *, | 87 | extern ssize_t xfs_read(struct bhv_desc *, struct kiocb *, |
88 | const struct iovec *, unsigned int, | 88 | const struct iovec *, unsigned int, |
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 97dbcb68b25f..b7aad3cfdfeb 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -151,7 +151,7 @@ xfs_set_inodeops( | |||
151 | STATIC __inline__ void | 151 | STATIC __inline__ void |
152 | xfs_revalidate_inode( | 152 | xfs_revalidate_inode( |
153 | xfs_mount_t *mp, | 153 | xfs_mount_t *mp, |
154 | vnode_t *vp, | 154 | bhv_vnode_t *vp, |
155 | xfs_inode_t *ip) | 155 | xfs_inode_t *ip) |
156 | { | 156 | { |
157 | struct inode *inode = vn_to_inode(vp); | 157 | struct inode *inode = vn_to_inode(vp); |
@@ -206,7 +206,7 @@ xfs_revalidate_inode( | |||
206 | void | 206 | void |
207 | xfs_initialize_vnode( | 207 | xfs_initialize_vnode( |
208 | bhv_desc_t *bdp, | 208 | bhv_desc_t *bdp, |
209 | vnode_t *vp, | 209 | bhv_vnode_t *vp, |
210 | bhv_desc_t *inode_bhv, | 210 | bhv_desc_t *inode_bhv, |
211 | int unlock) | 211 | int unlock) |
212 | { | 212 | { |
@@ -336,7 +336,7 @@ STATIC struct inode * | |||
336 | xfs_fs_alloc_inode( | 336 | xfs_fs_alloc_inode( |
337 | struct super_block *sb) | 337 | struct super_block *sb) |
338 | { | 338 | { |
339 | vnode_t *vp; | 339 | bhv_vnode_t *vp; |
340 | 340 | ||
341 | vp = kmem_zone_alloc(xfs_vnode_zone, KM_SLEEP); | 341 | vp = kmem_zone_alloc(xfs_vnode_zone, KM_SLEEP); |
342 | if (unlikely(!vp)) | 342 | if (unlikely(!vp)) |
@@ -359,13 +359,13 @@ xfs_fs_inode_init_once( | |||
359 | { | 359 | { |
360 | if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) == | 360 | if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) == |
361 | SLAB_CTOR_CONSTRUCTOR) | 361 | SLAB_CTOR_CONSTRUCTOR) |
362 | inode_init_once(vn_to_inode((vnode_t *)vnode)); | 362 | inode_init_once(vn_to_inode((bhv_vnode_t *)vnode)); |
363 | } | 363 | } |
364 | 364 | ||
365 | STATIC int | 365 | STATIC int |
366 | xfs_init_zones(void) | 366 | xfs_init_zones(void) |
367 | { | 367 | { |
368 | xfs_vnode_zone = kmem_zone_init_flags(sizeof(vnode_t), "xfs_vnode_t", | 368 | xfs_vnode_zone = kmem_zone_init_flags(sizeof(bhv_vnode_t), "xfs_vnode", |
369 | KM_ZONE_HWALIGN | KM_ZONE_RECLAIM | | 369 | KM_ZONE_HWALIGN | KM_ZONE_RECLAIM | |
370 | KM_ZONE_SPREAD, | 370 | KM_ZONE_SPREAD, |
371 | xfs_fs_inode_init_once); | 371 | xfs_fs_inode_init_once); |
@@ -409,22 +409,17 @@ xfs_fs_write_inode( | |||
409 | struct inode *inode, | 409 | struct inode *inode, |
410 | int sync) | 410 | int sync) |
411 | { | 411 | { |
412 | vnode_t *vp = vn_from_inode(inode); | 412 | bhv_vnode_t *vp = vn_from_inode(inode); |
413 | int error = 0, flags = FLUSH_INODE; | 413 | int error = 0, flags = FLUSH_INODE; |
414 | 414 | ||
415 | if (vp) { | 415 | if (vp) { |
416 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); | 416 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); |
417 | if (sync) | 417 | if (sync) |
418 | flags |= FLUSH_SYNC; | 418 | flags |= FLUSH_SYNC; |
419 | VOP_IFLUSH(vp, flags, error); | 419 | error = bhv_vop_iflush(vp, flags); |
420 | if (error == EAGAIN) { | 420 | if (error == EAGAIN) |
421 | if (sync) | 421 | error = sync? bhv_vop_iflush(vp, flags | FLUSH_LOG) : 0; |
422 | VOP_IFLUSH(vp, flags | FLUSH_LOG, error); | ||
423 | else | ||
424 | error = 0; | ||
425 | } | ||
426 | } | 422 | } |
427 | |||
428 | return -error; | 423 | return -error; |
429 | } | 424 | } |
430 | 425 | ||
@@ -432,8 +427,7 @@ STATIC void | |||
432 | xfs_fs_clear_inode( | 427 | xfs_fs_clear_inode( |
433 | struct inode *inode) | 428 | struct inode *inode) |
434 | { | 429 | { |
435 | vnode_t *vp = vn_from_inode(inode); | 430 | bhv_vnode_t *vp = vn_from_inode(inode); |
436 | int error, cache; | ||
437 | 431 | ||
438 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); | 432 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); |
439 | 433 | ||
@@ -446,20 +440,18 @@ xfs_fs_clear_inode( | |||
446 | * This can happen because xfs_iget_core calls xfs_idestroy if we | 440 | * This can happen because xfs_iget_core calls xfs_idestroy if we |
447 | * find an inode with di_mode == 0 but without IGET_CREATE set. | 441 | * find an inode with di_mode == 0 but without IGET_CREATE set. |
448 | */ | 442 | */ |
449 | if (vp->v_fbhv) | 443 | if (VNHEAD(vp)) |
450 | VOP_INACTIVE(vp, NULL, cache); | 444 | bhv_vop_inactive(vp, NULL); |
451 | 445 | ||
452 | VN_LOCK(vp); | 446 | VN_LOCK(vp); |
453 | vp->v_flag &= ~VMODIFIED; | 447 | vp->v_flag &= ~VMODIFIED; |
454 | VN_UNLOCK(vp, 0); | 448 | VN_UNLOCK(vp, 0); |
455 | 449 | ||
456 | if (vp->v_fbhv) { | 450 | if (VNHEAD(vp)) |
457 | VOP_RECLAIM(vp, error); | 451 | if (bhv_vop_reclaim(vp)) |
458 | if (error) | 452 | panic("%s: cannot reclaim 0x%p\n", __FUNCTION__, vp); |
459 | panic("vn_purge: cannot reclaim"); | ||
460 | } | ||
461 | 453 | ||
462 | ASSERT(vp->v_fbhv == NULL); | 454 | ASSERT(VNHEAD(vp) == NULL); |
463 | 455 | ||
464 | #ifdef XFS_VNODE_TRACE | 456 | #ifdef XFS_VNODE_TRACE |
465 | ktrace_free(vp->v_trace); | 457 | ktrace_free(vp->v_trace); |
@@ -789,7 +781,7 @@ xfs_fs_fill_super( | |||
789 | void *data, | 781 | void *data, |
790 | int silent) | 782 | int silent) |
791 | { | 783 | { |
792 | vnode_t *rootvp; | 784 | struct bhv_vnode *rootvp; |
793 | struct bhv_vfs *vfsp = vfs_allocate(sb); | 785 | struct bhv_vfs *vfsp = vfs_allocate(sb); |
794 | struct xfs_mount_args *args = xfs_args_allocate(sb, silent); | 786 | struct xfs_mount_args *args = xfs_args_allocate(sb, silent); |
795 | struct kstatfs statvfs; | 787 | struct kstatfs statvfs; |
diff --git a/fs/xfs/linux-2.6/xfs_super.h b/fs/xfs/linux-2.6/xfs_super.h index 376b96cb513a..33dd1ca13245 100644 --- a/fs/xfs/linux-2.6/xfs_super.h +++ b/fs/xfs/linux-2.6/xfs_super.h | |||
@@ -105,7 +105,7 @@ struct block_device; | |||
105 | 105 | ||
106 | extern __uint64_t xfs_max_file_offset(unsigned int); | 106 | extern __uint64_t xfs_max_file_offset(unsigned int); |
107 | 107 | ||
108 | extern void xfs_initialize_vnode(bhv_desc_t *, vnode_t *, bhv_desc_t *, int); | 108 | extern void xfs_initialize_vnode(bhv_desc_t *, bhv_vnode_t *, bhv_desc_t *, int); |
109 | 109 | ||
110 | extern void xfs_flush_inode(struct xfs_inode *); | 110 | extern void xfs_flush_inode(struct xfs_inode *); |
111 | extern void xfs_flush_device(struct xfs_inode *); | 111 | extern void xfs_flush_device(struct xfs_inode *); |
diff --git a/fs/xfs/linux-2.6/xfs_vfs.c b/fs/xfs/linux-2.6/xfs_vfs.c index 9f9bc894deb9..a91ecfa9c8aa 100644 --- a/fs/xfs/linux-2.6/xfs_vfs.c +++ b/fs/xfs/linux-2.6/xfs_vfs.c | |||
@@ -104,7 +104,7 @@ vfs_mntupdate( | |||
104 | int | 104 | int |
105 | vfs_root( | 105 | vfs_root( |
106 | struct bhv_desc *bdp, | 106 | struct bhv_desc *bdp, |
107 | struct vnode **vpp) | 107 | struct bhv_vnode **vpp) |
108 | { | 108 | { |
109 | struct bhv_desc *next = bdp; | 109 | struct bhv_desc *next = bdp; |
110 | 110 | ||
@@ -118,7 +118,7 @@ int | |||
118 | vfs_statvfs( | 118 | vfs_statvfs( |
119 | struct bhv_desc *bdp, | 119 | struct bhv_desc *bdp, |
120 | xfs_statfs_t *sp, | 120 | xfs_statfs_t *sp, |
121 | struct vnode *vp) | 121 | struct bhv_vnode *vp) |
122 | { | 122 | { |
123 | struct bhv_desc *next = bdp; | 123 | struct bhv_desc *next = bdp; |
124 | 124 | ||
@@ -145,7 +145,7 @@ vfs_sync( | |||
145 | int | 145 | int |
146 | vfs_vget( | 146 | vfs_vget( |
147 | struct bhv_desc *bdp, | 147 | struct bhv_desc *bdp, |
148 | struct vnode **vpp, | 148 | struct bhv_vnode **vpp, |
149 | struct fid *fidp) | 149 | struct fid *fidp) |
150 | { | 150 | { |
151 | struct bhv_desc *next = bdp; | 151 | struct bhv_desc *next = bdp; |
@@ -187,7 +187,7 @@ vfs_quotactl( | |||
187 | void | 187 | void |
188 | vfs_init_vnode( | 188 | vfs_init_vnode( |
189 | struct bhv_desc *bdp, | 189 | struct bhv_desc *bdp, |
190 | struct vnode *vp, | 190 | struct bhv_vnode *vp, |
191 | struct bhv_desc *bp, | 191 | struct bhv_desc *bp, |
192 | int unlock) | 192 | int unlock) |
193 | { | 193 | { |
diff --git a/fs/xfs/linux-2.6/xfs_vfs.h b/fs/xfs/linux-2.6/xfs_vfs.h index 55f0afd3e794..1a3a2dd4b97e 100644 --- a/fs/xfs/linux-2.6/xfs_vfs.h +++ b/fs/xfs/linux-2.6/xfs_vfs.h | |||
@@ -22,9 +22,9 @@ | |||
22 | #include "xfs_fs.h" | 22 | #include "xfs_fs.h" |
23 | 23 | ||
24 | struct bhv_vfs; | 24 | struct bhv_vfs; |
25 | struct bhv_vnode; | ||
25 | struct fid; | 26 | struct fid; |
26 | struct cred; | 27 | struct cred; |
27 | struct vnode; | ||
28 | struct statfs; | 28 | struct statfs; |
29 | struct seq_file; | 29 | struct seq_file; |
30 | struct super_block; | 30 | struct super_block; |
@@ -53,8 +53,6 @@ typedef struct bhv_vfs { | |||
53 | wait_queue_head_t vfs_wait_single_sync_task; | 53 | wait_queue_head_t vfs_wait_single_sync_task; |
54 | } bhv_vfs_t; | 54 | } bhv_vfs_t; |
55 | 55 | ||
56 | #define vfs_fbhv vfs_bh.bh_first /* 1st on vfs behavior chain */ | ||
57 | |||
58 | #define bhvtovfs(bdp) ( (struct bhv_vfs *)BHV_VOBJ(bdp) ) | 56 | #define bhvtovfs(bdp) ( (struct bhv_vfs *)BHV_VOBJ(bdp) ) |
59 | #define bhvtovfsops(bdp) ( (struct bhv_vfsops *)BHV_OPS(bdp) ) | 57 | #define bhvtovfsops(bdp) ( (struct bhv_vfsops *)BHV_OPS(bdp) ) |
60 | #define VFS_BHVHEAD(vfs) ( &(vfs)->vfs_bh ) | 58 | #define VFS_BHVHEAD(vfs) ( &(vfs)->vfs_bh ) |
@@ -110,14 +108,15 @@ typedef int (*vfs_showargs_t)(bhv_desc_t *, struct seq_file *); | |||
110 | typedef int (*vfs_unmount_t)(bhv_desc_t *, int, struct cred *); | 108 | typedef int (*vfs_unmount_t)(bhv_desc_t *, int, struct cred *); |
111 | typedef int (*vfs_mntupdate_t)(bhv_desc_t *, int *, | 109 | typedef int (*vfs_mntupdate_t)(bhv_desc_t *, int *, |
112 | struct xfs_mount_args *); | 110 | struct xfs_mount_args *); |
113 | typedef int (*vfs_root_t)(bhv_desc_t *, struct vnode **); | 111 | typedef int (*vfs_root_t)(bhv_desc_t *, struct bhv_vnode **); |
114 | typedef int (*vfs_statvfs_t)(bhv_desc_t *, xfs_statfs_t *, struct vnode *); | 112 | typedef int (*vfs_statvfs_t)(bhv_desc_t *, xfs_statfs_t *, |
113 | struct bhv_vnode *); | ||
115 | typedef int (*vfs_sync_t)(bhv_desc_t *, int, struct cred *); | 114 | typedef int (*vfs_sync_t)(bhv_desc_t *, int, struct cred *); |
116 | typedef int (*vfs_vget_t)(bhv_desc_t *, struct vnode **, struct fid *); | 115 | typedef int (*vfs_vget_t)(bhv_desc_t *, struct bhv_vnode **, struct fid *); |
117 | typedef int (*vfs_dmapiops_t)(bhv_desc_t *, caddr_t); | 116 | typedef int (*vfs_dmapiops_t)(bhv_desc_t *, caddr_t); |
118 | typedef int (*vfs_quotactl_t)(bhv_desc_t *, int, int, caddr_t); | 117 | typedef int (*vfs_quotactl_t)(bhv_desc_t *, int, int, caddr_t); |
119 | typedef void (*vfs_init_vnode_t)(bhv_desc_t *, | 118 | typedef void (*vfs_init_vnode_t)(bhv_desc_t *, |
120 | struct vnode *, bhv_desc_t *, int); | 119 | struct bhv_vnode *, bhv_desc_t *, int); |
121 | typedef void (*vfs_force_shutdown_t)(bhv_desc_t *, int, char *, int); | 120 | typedef void (*vfs_force_shutdown_t)(bhv_desc_t *, int, char *, int); |
122 | typedef void (*vfs_freeze_t)(bhv_desc_t *); | 121 | typedef void (*vfs_freeze_t)(bhv_desc_t *); |
123 | 122 | ||
@@ -140,26 +139,26 @@ typedef struct bhv_vfsops { | |||
140 | } bhv_vfsops_t; | 139 | } bhv_vfsops_t; |
141 | 140 | ||
142 | /* | 141 | /* |
143 | * VFS's. Operates on vfs structure pointers (starts at bhv head). | 142 | * Virtual filesystem operations, operating from head bhv. |
144 | */ | 143 | */ |
145 | #define VHEAD(v) ((v)->vfs_fbhv) | 144 | #define VFSHEAD(v) ((v)->vfs_bh.bh_first) |
146 | #define bhv_vfs_mount(v, ma,cr) vfs_mount(VHEAD(v), ma,cr) | 145 | #define bhv_vfs_mount(v, ma,cr) vfs_mount(VFSHEAD(v), ma,cr) |
147 | #define bhv_vfs_parseargs(v, o,ma,f) vfs_parseargs(VHEAD(v), o,ma,f) | 146 | #define bhv_vfs_parseargs(v, o,ma,f) vfs_parseargs(VFSHEAD(v), o,ma,f) |
148 | #define bhv_vfs_showargs(v, m) vfs_showargs(VHEAD(v), m) | 147 | #define bhv_vfs_showargs(v, m) vfs_showargs(VFSHEAD(v), m) |
149 | #define bhv_vfs_unmount(v, f,cr) vfs_unmount(VHEAD(v), f,cr) | 148 | #define bhv_vfs_unmount(v, f,cr) vfs_unmount(VFSHEAD(v), f,cr) |
150 | #define bhv_vfs_mntupdate(v, fl,args) vfs_mntupdate(VHEAD(v), fl,args) | 149 | #define bhv_vfs_mntupdate(v, fl,args) vfs_mntupdate(VFSHEAD(v), fl,args) |
151 | #define bhv_vfs_root(v, vpp) vfs_root(VHEAD(v), vpp) | 150 | #define bhv_vfs_root(v, vpp) vfs_root(VFSHEAD(v), vpp) |
152 | #define bhv_vfs_statvfs(v, sp,vp) vfs_statvfs(VHEAD(v), sp,vp) | 151 | #define bhv_vfs_statvfs(v, sp,vp) vfs_statvfs(VFSHEAD(v), sp,vp) |
153 | #define bhv_vfs_sync(v, flag,cr) vfs_sync(VHEAD(v), flag,cr) | 152 | #define bhv_vfs_sync(v, flag,cr) vfs_sync(VFSHEAD(v), flag,cr) |
154 | #define bhv_vfs_vget(v, vpp,fidp) vfs_vget(VHEAD(v), vpp,fidp) | 153 | #define bhv_vfs_vget(v, vpp,fidp) vfs_vget(VFSHEAD(v), vpp,fidp) |
155 | #define bhv_vfs_dmapiops(v, p) vfs_dmapiops(VHEAD(v), p) | 154 | #define bhv_vfs_dmapiops(v, p) vfs_dmapiops(VFSHEAD(v), p) |
156 | #define bhv_vfs_quotactl(v, c,id,p) vfs_quotactl(VHEAD(v), c,id,p) | 155 | #define bhv_vfs_quotactl(v, c,id,p) vfs_quotactl(VFSHEAD(v), c,id,p) |
157 | #define bhv_vfs_init_vnode(v, vp,b,ul) vfs_init_vnode(VHEAD(v), vp,b,ul) | 156 | #define bhv_vfs_init_vnode(v, vp,b,ul) vfs_init_vnode(VFSHEAD(v), vp,b,ul) |
158 | #define bhv_vfs_force_shutdown(v,u,f,l) vfs_force_shutdown(VHEAD(v), u,f,l) | 157 | #define bhv_vfs_force_shutdown(v,u,f,l) vfs_force_shutdown(VFSHEAD(v), u,f,l) |
159 | #define bhv_vfs_freeze(v) vfs_freeze(VHEAD(v)) | 158 | #define bhv_vfs_freeze(v) vfs_freeze(VFSHEAD(v)) |
160 | 159 | ||
161 | /* | 160 | /* |
162 | * PVFS's. Operates on behavior descriptor pointers. | 161 | * Virtual filesystem operations, operating from next bhv. |
163 | */ | 162 | */ |
164 | #define bhv_next_vfs_mount(b, ma,cr) vfs_mount(b, ma,cr) | 163 | #define bhv_next_vfs_mount(b, ma,cr) vfs_mount(b, ma,cr) |
165 | #define bhv_next_vfs_parseargs(b, o,ma,f) vfs_parseargs(b, o,ma,f) | 164 | #define bhv_next_vfs_parseargs(b, o,ma,f) vfs_parseargs(b, o,ma,f) |
@@ -181,13 +180,13 @@ extern int vfs_parseargs(bhv_desc_t *, char *, struct xfs_mount_args *, int); | |||
181 | extern int vfs_showargs(bhv_desc_t *, struct seq_file *); | 180 | extern int vfs_showargs(bhv_desc_t *, struct seq_file *); |
182 | extern int vfs_unmount(bhv_desc_t *, int, struct cred *); | 181 | extern int vfs_unmount(bhv_desc_t *, int, struct cred *); |
183 | extern int vfs_mntupdate(bhv_desc_t *, int *, struct xfs_mount_args *); | 182 | extern int vfs_mntupdate(bhv_desc_t *, int *, struct xfs_mount_args *); |
184 | extern int vfs_root(bhv_desc_t *, struct vnode **); | 183 | extern int vfs_root(bhv_desc_t *, struct bhv_vnode **); |
185 | extern int vfs_statvfs(bhv_desc_t *, xfs_statfs_t *, struct vnode *); | 184 | extern int vfs_statvfs(bhv_desc_t *, xfs_statfs_t *, struct bhv_vnode *); |
186 | extern int vfs_sync(bhv_desc_t *, int, struct cred *); | 185 | extern int vfs_sync(bhv_desc_t *, int, struct cred *); |
187 | extern int vfs_vget(bhv_desc_t *, struct vnode **, struct fid *); | 186 | extern int vfs_vget(bhv_desc_t *, struct bhv_vnode **, struct fid *); |
188 | extern int vfs_dmapiops(bhv_desc_t *, caddr_t); | 187 | extern int vfs_dmapiops(bhv_desc_t *, caddr_t); |
189 | extern int vfs_quotactl(bhv_desc_t *, int, int, caddr_t); | 188 | extern int vfs_quotactl(bhv_desc_t *, int, int, caddr_t); |
190 | extern void vfs_init_vnode(bhv_desc_t *, struct vnode *, bhv_desc_t *, int); | 189 | extern void vfs_init_vnode(bhv_desc_t *, struct bhv_vnode *, bhv_desc_t *, int); |
191 | extern void vfs_force_shutdown(bhv_desc_t *, int, char *, int); | 190 | extern void vfs_force_shutdown(bhv_desc_t *, int, char *, int); |
192 | extern void vfs_freeze(bhv_desc_t *); | 191 | extern void vfs_freeze(bhv_desc_t *); |
193 | 192 | ||
diff --git a/fs/xfs/linux-2.6/xfs_vnode.c b/fs/xfs/linux-2.6/xfs_vnode.c index 82777f1a70a7..66e36e195f29 100644 --- a/fs/xfs/linux-2.6/xfs_vnode.c +++ b/fs/xfs/linux-2.6/xfs_vnode.c | |||
@@ -39,7 +39,7 @@ vn_init(void) | |||
39 | 39 | ||
40 | void | 40 | void |
41 | vn_iowait( | 41 | vn_iowait( |
42 | struct vnode *vp) | 42 | bhv_vnode_t *vp) |
43 | { | 43 | { |
44 | wait_queue_head_t *wq = vptosync(vp); | 44 | wait_queue_head_t *wq = vptosync(vp); |
45 | 45 | ||
@@ -48,7 +48,7 @@ vn_iowait( | |||
48 | 48 | ||
49 | void | 49 | void |
50 | vn_iowake( | 50 | vn_iowake( |
51 | struct vnode *vp) | 51 | bhv_vnode_t *vp) |
52 | { | 52 | { |
53 | if (atomic_dec_and_test(&vp->v_iocount)) | 53 | if (atomic_dec_and_test(&vp->v_iocount)) |
54 | wake_up(vptosync(vp)); | 54 | wake_up(vptosync(vp)); |
@@ -61,7 +61,7 @@ vn_iowake( | |||
61 | */ | 61 | */ |
62 | void | 62 | void |
63 | vn_ioerror( | 63 | vn_ioerror( |
64 | struct vnode *vp, | 64 | bhv_vnode_t *vp, |
65 | int error, | 65 | int error, |
66 | char *f, | 66 | char *f, |
67 | int l) | 67 | int l) |
@@ -70,11 +70,11 @@ vn_ioerror( | |||
70 | bhv_vfs_force_shutdown(vp->v_vfsp, SHUTDOWN_DEVICE_REQ, f, l); | 70 | bhv_vfs_force_shutdown(vp->v_vfsp, SHUTDOWN_DEVICE_REQ, f, l); |
71 | } | 71 | } |
72 | 72 | ||
73 | struct vnode * | 73 | bhv_vnode_t * |
74 | vn_initialize( | 74 | vn_initialize( |
75 | struct inode *inode) | 75 | struct inode *inode) |
76 | { | 76 | { |
77 | struct vnode *vp = vn_from_inode(inode); | 77 | bhv_vnode_t *vp = vn_from_inode(inode); |
78 | 78 | ||
79 | XFS_STATS_INC(vn_active); | 79 | XFS_STATS_INC(vn_active); |
80 | XFS_STATS_INC(vn_alloc); | 80 | XFS_STATS_INC(vn_alloc); |
@@ -110,7 +110,7 @@ vn_initialize( | |||
110 | */ | 110 | */ |
111 | void | 111 | void |
112 | vn_revalidate_core( | 112 | vn_revalidate_core( |
113 | struct vnode *vp, | 113 | bhv_vnode_t *vp, |
114 | vattr_t *vap) | 114 | vattr_t *vap) |
115 | { | 115 | { |
116 | struct inode *inode = vn_to_inode(vp); | 116 | struct inode *inode = vn_to_inode(vp); |
@@ -146,14 +146,14 @@ vn_revalidate_core( | |||
146 | */ | 146 | */ |
147 | int | 147 | int |
148 | __vn_revalidate( | 148 | __vn_revalidate( |
149 | struct vnode *vp, | 149 | bhv_vnode_t *vp, |
150 | struct vattr *vattr) | 150 | struct vattr *vattr) |
151 | { | 151 | { |
152 | int error; | 152 | int error; |
153 | 153 | ||
154 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); | 154 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); |
155 | vattr->va_mask = XFS_AT_STAT | XFS_AT_XFLAGS; | 155 | vattr->va_mask = XFS_AT_STAT | XFS_AT_XFLAGS; |
156 | VOP_GETATTR(vp, vattr, 0, NULL, error); | 156 | error = bhv_vop_getattr(vp, vattr, 0, NULL); |
157 | if (likely(!error)) { | 157 | if (likely(!error)) { |
158 | vn_revalidate_core(vp, vattr); | 158 | vn_revalidate_core(vp, vattr); |
159 | VUNMODIFY(vp); | 159 | VUNMODIFY(vp); |
@@ -163,7 +163,7 @@ __vn_revalidate( | |||
163 | 163 | ||
164 | int | 164 | int |
165 | vn_revalidate( | 165 | vn_revalidate( |
166 | struct vnode *vp) | 166 | bhv_vnode_t *vp) |
167 | { | 167 | { |
168 | vattr_t vattr; | 168 | vattr_t vattr; |
169 | 169 | ||
@@ -173,9 +173,9 @@ vn_revalidate( | |||
173 | /* | 173 | /* |
174 | * Add a reference to a referenced vnode. | 174 | * Add a reference to a referenced vnode. |
175 | */ | 175 | */ |
176 | struct vnode * | 176 | bhv_vnode_t * |
177 | vn_hold( | 177 | vn_hold( |
178 | struct vnode *vp) | 178 | bhv_vnode_t *vp) |
179 | { | 179 | { |
180 | struct inode *inode; | 180 | struct inode *inode; |
181 | 181 | ||
@@ -208,31 +208,31 @@ vn_hold( | |||
208 | * Vnode tracing code. | 208 | * Vnode tracing code. |
209 | */ | 209 | */ |
210 | void | 210 | void |
211 | vn_trace_entry(vnode_t *vp, const char *func, inst_t *ra) | 211 | vn_trace_entry(bhv_vnode_t *vp, const char *func, inst_t *ra) |
212 | { | 212 | { |
213 | KTRACE_ENTER(vp, VNODE_KTRACE_ENTRY, func, 0, ra); | 213 | KTRACE_ENTER(vp, VNODE_KTRACE_ENTRY, func, 0, ra); |
214 | } | 214 | } |
215 | 215 | ||
216 | void | 216 | void |
217 | vn_trace_exit(vnode_t *vp, const char *func, inst_t *ra) | 217 | vn_trace_exit(bhv_vnode_t *vp, const char *func, inst_t *ra) |
218 | { | 218 | { |
219 | KTRACE_ENTER(vp, VNODE_KTRACE_EXIT, func, 0, ra); | 219 | KTRACE_ENTER(vp, VNODE_KTRACE_EXIT, func, 0, ra); |
220 | } | 220 | } |
221 | 221 | ||
222 | void | 222 | void |
223 | vn_trace_hold(vnode_t *vp, char *file, int line, inst_t *ra) | 223 | vn_trace_hold(bhv_vnode_t *vp, char *file, int line, inst_t *ra) |
224 | { | 224 | { |
225 | KTRACE_ENTER(vp, VNODE_KTRACE_HOLD, file, line, ra); | 225 | KTRACE_ENTER(vp, VNODE_KTRACE_HOLD, file, line, ra); |
226 | } | 226 | } |
227 | 227 | ||
228 | void | 228 | void |
229 | vn_trace_ref(vnode_t *vp, char *file, int line, inst_t *ra) | 229 | vn_trace_ref(bhv_vnode_t *vp, char *file, int line, inst_t *ra) |
230 | { | 230 | { |
231 | KTRACE_ENTER(vp, VNODE_KTRACE_REF, file, line, ra); | 231 | KTRACE_ENTER(vp, VNODE_KTRACE_REF, file, line, ra); |
232 | } | 232 | } |
233 | 233 | ||
234 | void | 234 | void |
235 | vn_trace_rele(vnode_t *vp, char *file, int line, inst_t *ra) | 235 | vn_trace_rele(bhv_vnode_t *vp, char *file, int line, inst_t *ra) |
236 | { | 236 | { |
237 | KTRACE_ENTER(vp, VNODE_KTRACE_RELE, file, line, ra); | 237 | KTRACE_ENTER(vp, VNODE_KTRACE_RELE, file, line, ra); |
238 | } | 238 | } |
diff --git a/fs/xfs/linux-2.6/xfs_vnode.h b/fs/xfs/linux-2.6/xfs_vnode.h index 95343637ab66..cb16774aea73 100644 --- a/fs/xfs/linux-2.6/xfs_vnode.h +++ b/fs/xfs/linux-2.6/xfs_vnode.h | |||
@@ -14,33 +14,6 @@ | |||
14 | * You should have received a copy of the GNU General Public License | 14 | * You should have received a copy of the GNU General Public License |
15 | * along with this program; if not, write the Free Software Foundation, | 15 | * along with this program; if not, write the Free Software Foundation, |
16 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 16 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
17 | * | ||
18 | * Portions Copyright (c) 1989, 1993 | ||
19 | * The Regents of the University of California. All rights reserved. | ||
20 | * | ||
21 | * Redistribution and use in source and binary forms, with or without | ||
22 | * modification, are permitted provided that the following conditions | ||
23 | * are met: | ||
24 | * 1. Redistributions of source code must retain the above copyright | ||
25 | * notice, this list of conditions and the following disclaimer. | ||
26 | * 2. Redistributions in binary form must reproduce the above copyright | ||
27 | * notice, this list of conditions and the following disclaimer in the | ||
28 | * documentation and/or other materials provided with the distribution. | ||
29 | * 3. Neither the name of the University nor the names of its contributors | ||
30 | * may be used to endorse or promote products derived from this software | ||
31 | * without specific prior written permission. | ||
32 | * | ||
33 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | ||
34 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
35 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
36 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | ||
37 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
38 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
39 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
40 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
41 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
42 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||
43 | * SUCH DAMAGE. | ||
44 | */ | 17 | */ |
45 | #ifndef __XFS_VNODE_H__ | 18 | #ifndef __XFS_VNODE_H__ |
46 | #define __XFS_VNODE_H__ | 19 | #define __XFS_VNODE_H__ |
@@ -51,7 +24,6 @@ struct vattr; | |||
51 | struct xfs_iomap; | 24 | struct xfs_iomap; |
52 | struct attrlist_cursor_kern; | 25 | struct attrlist_cursor_kern; |
53 | 26 | ||
54 | |||
55 | typedef xfs_ino_t vnumber_t; | 27 | typedef xfs_ino_t vnumber_t; |
56 | typedef struct dentry vname_t; | 28 | typedef struct dentry vname_t; |
57 | typedef bhv_head_t vn_bhv_head_t; | 29 | typedef bhv_head_t vn_bhv_head_t; |
@@ -66,7 +38,7 @@ typedef enum vflags { | |||
66 | * MP locking protocols: | 38 | * MP locking protocols: |
67 | * v_flag, v_vfsp VN_LOCK/VN_UNLOCK | 39 | * v_flag, v_vfsp VN_LOCK/VN_UNLOCK |
68 | */ | 40 | */ |
69 | typedef struct vnode { | 41 | typedef struct bhv_vnode { |
70 | vflags_t v_flag; /* vnode flags (see above) */ | 42 | vflags_t v_flag; /* vnode flags (see above) */ |
71 | struct bhv_vfs *v_vfsp; /* ptr to containing VFS */ | 43 | struct bhv_vfs *v_vfsp; /* ptr to containing VFS */ |
72 | vnumber_t v_number; /* in-core vnode number */ | 44 | vnumber_t v_number; /* in-core vnode number */ |
@@ -78,7 +50,7 @@ typedef struct vnode { | |||
78 | #endif | 50 | #endif |
79 | struct inode v_inode; /* Linux inode */ | 51 | struct inode v_inode; /* Linux inode */ |
80 | /* inode MUST be last */ | 52 | /* inode MUST be last */ |
81 | } vnode_t; | 53 | } bhv_vnode_t; |
82 | 54 | ||
83 | #define VN_ISLNK(vp) S_ISLNK((vp)->v_inode.i_mode) | 55 | #define VN_ISLNK(vp) S_ISLNK((vp)->v_inode.i_mode) |
84 | #define VN_ISREG(vp) S_ISREG((vp)->v_inode.i_mode) | 56 | #define VN_ISREG(vp) S_ISREG((vp)->v_inode.i_mode) |
@@ -86,9 +58,6 @@ typedef struct vnode { | |||
86 | #define VN_ISCHR(vp) S_ISCHR((vp)->v_inode.i_mode) | 58 | #define VN_ISCHR(vp) S_ISCHR((vp)->v_inode.i_mode) |
87 | #define VN_ISBLK(vp) S_ISBLK((vp)->v_inode.i_mode) | 59 | #define VN_ISBLK(vp) S_ISBLK((vp)->v_inode.i_mode) |
88 | 60 | ||
89 | #define v_fbhv v_bh.bh_first /* first behavior */ | ||
90 | #define v_fops v_bh.bh_first->bd_ops /* first behavior ops */ | ||
91 | |||
92 | #define VNODE_POSITION_BASE BHV_POSITION_BASE /* chain bottom */ | 61 | #define VNODE_POSITION_BASE BHV_POSITION_BASE /* chain bottom */ |
93 | #define VNODE_POSITION_TOP BHV_POSITION_TOP /* chain top */ | 62 | #define VNODE_POSITION_TOP BHV_POSITION_TOP /* chain top */ |
94 | #define VNODE_POSITION_INVALID BHV_POSITION_INVALID /* invalid pos. num */ | 63 | #define VNODE_POSITION_INVALID BHV_POSITION_INVALID /* invalid pos. num */ |
@@ -110,8 +79,8 @@ typedef enum { | |||
110 | /* | 79 | /* |
111 | * Macros for dealing with the behavior descriptor inside of the vnode. | 80 | * Macros for dealing with the behavior descriptor inside of the vnode. |
112 | */ | 81 | */ |
113 | #define BHV_TO_VNODE(bdp) ((vnode_t *)BHV_VOBJ(bdp)) | 82 | #define BHV_TO_VNODE(bdp) ((bhv_vnode_t *)BHV_VOBJ(bdp)) |
114 | #define BHV_TO_VNODE_NULL(bdp) ((vnode_t *)BHV_VOBJNULL(bdp)) | 83 | #define BHV_TO_VNODE_NULL(bdp) ((bhv_vnode_t *)BHV_VOBJNULL(bdp)) |
115 | 84 | ||
116 | #define VN_BHV_HEAD(vp) ((bhv_head_t *)(&((vp)->v_bh))) | 85 | #define VN_BHV_HEAD(vp) ((bhv_head_t *)(&((vp)->v_bh))) |
117 | #define vn_bhv_head_init(bhp,name) bhv_head_init(bhp,name) | 86 | #define vn_bhv_head_init(bhp,name) bhv_head_init(bhp,name) |
@@ -122,17 +91,17 @@ typedef enum { | |||
122 | /* | 91 | /* |
123 | * Vnode to Linux inode mapping. | 92 | * Vnode to Linux inode mapping. |
124 | */ | 93 | */ |
125 | static inline struct vnode *vn_from_inode(struct inode *inode) | 94 | static inline struct bhv_vnode *vn_from_inode(struct inode *inode) |
126 | { | 95 | { |
127 | return (vnode_t *)list_entry(inode, vnode_t, v_inode); | 96 | return (bhv_vnode_t *)list_entry(inode, bhv_vnode_t, v_inode); |
128 | } | 97 | } |
129 | static inline struct inode *vn_to_inode(struct vnode *vnode) | 98 | static inline struct inode *vn_to_inode(struct bhv_vnode *vnode) |
130 | { | 99 | { |
131 | return &vnode->v_inode; | 100 | return &vnode->v_inode; |
132 | } | 101 | } |
133 | 102 | ||
134 | /* | 103 | /* |
135 | * Values for the VOP_RWLOCK and VOP_RWUNLOCK flags parameter. | 104 | * Values for the vop_rwlock/rwunlock flags parameter. |
136 | */ | 105 | */ |
137 | typedef enum vrwlock { | 106 | typedef enum vrwlock { |
138 | VRWLOCK_NONE, | 107 | VRWLOCK_NONE, |
@@ -144,7 +113,7 @@ typedef enum vrwlock { | |||
144 | } vrwlock_t; | 113 | } vrwlock_t; |
145 | 114 | ||
146 | /* | 115 | /* |
147 | * Return values for VOP_INACTIVE. A return value of | 116 | * Return values for bhv_vop_inactive. A return value of |
148 | * VN_INACTIVE_NOCACHE implies that the file system behavior | 117 | * VN_INACTIVE_NOCACHE implies that the file system behavior |
149 | * has disassociated its state and bhv_desc_t from the vnode. | 118 | * has disassociated its state and bhv_desc_t from the vnode. |
150 | */ | 119 | */ |
@@ -152,7 +121,7 @@ typedef enum vrwlock { | |||
152 | #define VN_INACTIVE_NOCACHE 1 | 121 | #define VN_INACTIVE_NOCACHE 1 |
153 | 122 | ||
154 | /* | 123 | /* |
155 | * Values for the cmd code given to VOP_VNODE_CHANGE. | 124 | * Values for the cmd code given to vop_vnode_change. |
156 | */ | 125 | */ |
157 | typedef enum vchange { | 126 | typedef enum vchange { |
158 | VCHANGE_FLAGS_FRLOCKS = 0, | 127 | VCHANGE_FLAGS_FRLOCKS = 0, |
@@ -188,22 +157,22 @@ typedef int (*vop_getattr_t)(bhv_desc_t *, struct vattr *, int, | |||
188 | typedef int (*vop_setattr_t)(bhv_desc_t *, struct vattr *, int, | 157 | typedef int (*vop_setattr_t)(bhv_desc_t *, struct vattr *, int, |
189 | struct cred *); | 158 | struct cred *); |
190 | typedef int (*vop_access_t)(bhv_desc_t *, int, struct cred *); | 159 | typedef int (*vop_access_t)(bhv_desc_t *, int, struct cred *); |
191 | typedef int (*vop_lookup_t)(bhv_desc_t *, vname_t *, vnode_t **, | 160 | typedef int (*vop_lookup_t)(bhv_desc_t *, vname_t *, bhv_vnode_t **, |
192 | int, vnode_t *, struct cred *); | 161 | int, bhv_vnode_t *, struct cred *); |
193 | typedef int (*vop_create_t)(bhv_desc_t *, vname_t *, struct vattr *, | 162 | typedef int (*vop_create_t)(bhv_desc_t *, vname_t *, struct vattr *, |
194 | vnode_t **, struct cred *); | 163 | bhv_vnode_t **, struct cred *); |
195 | typedef int (*vop_remove_t)(bhv_desc_t *, vname_t *, struct cred *); | 164 | typedef int (*vop_remove_t)(bhv_desc_t *, vname_t *, struct cred *); |
196 | typedef int (*vop_link_t)(bhv_desc_t *, vnode_t *, vname_t *, | 165 | typedef int (*vop_link_t)(bhv_desc_t *, bhv_vnode_t *, vname_t *, |
197 | struct cred *); | ||
198 | typedef int (*vop_rename_t)(bhv_desc_t *, vname_t *, vnode_t *, vname_t *, | ||
199 | struct cred *); | 166 | struct cred *); |
167 | typedef int (*vop_rename_t)(bhv_desc_t *, vname_t *, bhv_vnode_t *, | ||
168 | vname_t *, struct cred *); | ||
200 | typedef int (*vop_mkdir_t)(bhv_desc_t *, vname_t *, struct vattr *, | 169 | typedef int (*vop_mkdir_t)(bhv_desc_t *, vname_t *, struct vattr *, |
201 | vnode_t **, struct cred *); | 170 | bhv_vnode_t **, struct cred *); |
202 | typedef int (*vop_rmdir_t)(bhv_desc_t *, vname_t *, struct cred *); | 171 | typedef int (*vop_rmdir_t)(bhv_desc_t *, vname_t *, struct cred *); |
203 | typedef int (*vop_readdir_t)(bhv_desc_t *, struct uio *, struct cred *, | 172 | typedef int (*vop_readdir_t)(bhv_desc_t *, struct uio *, struct cred *, |
204 | int *); | 173 | int *); |
205 | typedef int (*vop_symlink_t)(bhv_desc_t *, vname_t *, struct vattr *, | 174 | typedef int (*vop_symlink_t)(bhv_desc_t *, vname_t *, struct vattr *, |
206 | char *, vnode_t **, struct cred *); | 175 | char *, bhv_vnode_t **, struct cred *); |
207 | typedef int (*vop_readlink_t)(bhv_desc_t *, struct uio *, int, | 176 | typedef int (*vop_readlink_t)(bhv_desc_t *, struct uio *, int, |
208 | struct cred *); | 177 | struct cred *); |
209 | typedef int (*vop_fsync_t)(bhv_desc_t *, int, struct cred *, | 178 | typedef int (*vop_fsync_t)(bhv_desc_t *, int, struct cred *, |
@@ -224,7 +193,7 @@ typedef int (*vop_attr_remove_t)(bhv_desc_t *, const char *, | |||
224 | int, struct cred *); | 193 | int, struct cred *); |
225 | typedef int (*vop_attr_list_t)(bhv_desc_t *, char *, int, int, | 194 | typedef int (*vop_attr_list_t)(bhv_desc_t *, char *, int, int, |
226 | struct attrlist_cursor_kern *, struct cred *); | 195 | struct attrlist_cursor_kern *, struct cred *); |
227 | typedef void (*vop_link_removed_t)(bhv_desc_t *, vnode_t *, int); | 196 | typedef void (*vop_link_removed_t)(bhv_desc_t *, bhv_vnode_t *, int); |
228 | typedef void (*vop_vnode_change_t)(bhv_desc_t *, vchange_t, __psint_t); | 197 | typedef void (*vop_vnode_change_t)(bhv_desc_t *, vchange_t, __psint_t); |
229 | typedef void (*vop_ptossvp_t)(bhv_desc_t *, xfs_off_t, xfs_off_t, int); | 198 | typedef void (*vop_ptossvp_t)(bhv_desc_t *, xfs_off_t, xfs_off_t, int); |
230 | typedef void (*vop_pflushinvalvp_t)(bhv_desc_t *, xfs_off_t, xfs_off_t, int); | 199 | typedef void (*vop_pflushinvalvp_t)(bhv_desc_t *, xfs_off_t, xfs_off_t, int); |
@@ -233,7 +202,7 @@ typedef int (*vop_pflushvp_t)(bhv_desc_t *, xfs_off_t, xfs_off_t, | |||
233 | typedef int (*vop_iflush_t)(bhv_desc_t *, int); | 202 | typedef int (*vop_iflush_t)(bhv_desc_t *, int); |
234 | 203 | ||
235 | 204 | ||
236 | typedef struct vnodeops { | 205 | typedef struct bhv_vnodeops { |
237 | bhv_position_t vn_position; /* position within behavior chain */ | 206 | bhv_position_t vn_position; /* position within behavior chain */ |
238 | vop_open_t vop_open; | 207 | vop_open_t vop_open; |
239 | vop_close_t vop_close; | 208 | vop_close_t vop_close; |
@@ -274,105 +243,80 @@ typedef struct vnodeops { | |||
274 | vop_pflushvp_t vop_flush_pages; | 243 | vop_pflushvp_t vop_flush_pages; |
275 | vop_release_t vop_release; | 244 | vop_release_t vop_release; |
276 | vop_iflush_t vop_iflush; | 245 | vop_iflush_t vop_iflush; |
277 | } vnodeops_t; | 246 | } bhv_vnodeops_t; |
278 | 247 | ||
279 | /* | 248 | /* |
280 | * VOP's. | 249 | * Virtual node operations, operating from head bhv. |
281 | */ | ||
282 | #define _VOP_(op, vp) (*((vnodeops_t *)(vp)->v_fops)->op) | ||
283 | |||
284 | #define VOP_OPEN(vp, cr, rv) \ | ||
285 | rv = _VOP_(vop_open, vp)((vp)->v_fbhv, cr) | ||
286 | #define VOP_CLOSE(vp, f, last, cr, rv) \ | ||
287 | rv = _VOP_(vop_close, vp)((vp)->v_fbhv, f, last, cr) | ||
288 | #define VOP_READ(vp,file,iov,segs,offset,ioflags,cr,rv) \ | ||
289 | rv = _VOP_(vop_read, vp)((vp)->v_fbhv,file,iov,segs,offset,ioflags,cr) | ||
290 | #define VOP_WRITE(vp,file,iov,segs,offset,ioflags,cr,rv) \ | ||
291 | rv = _VOP_(vop_write, vp)((vp)->v_fbhv,file,iov,segs,offset,ioflags,cr) | ||
292 | #define VOP_SENDFILE(vp,f,off,ioflags,cnt,act,targ,cr,rv) \ | ||
293 | rv = _VOP_(vop_sendfile, vp)((vp)->v_fbhv,f,off,ioflags,cnt,act,targ,cr) | ||
294 | #define VOP_SPLICE_READ(vp,f,o,pipe,cnt,fl,iofl,cr,rv) \ | ||
295 | rv = _VOP_(vop_splice_read, vp)((vp)->v_fbhv,f,o,pipe,cnt,fl,iofl,cr) | ||
296 | #define VOP_SPLICE_WRITE(vp,f,o,pipe,cnt,fl,iofl,cr,rv) \ | ||
297 | rv = _VOP_(vop_splice_write, vp)((vp)->v_fbhv,f,o,pipe,cnt,fl,iofl,cr) | ||
298 | #define VOP_BMAP(vp,of,sz,rw,b,n,rv) \ | ||
299 | rv = _VOP_(vop_bmap, vp)((vp)->v_fbhv,of,sz,rw,b,n) | ||
300 | #define VOP_GETATTR(vp, vap, f, cr, rv) \ | ||
301 | rv = _VOP_(vop_getattr, vp)((vp)->v_fbhv, vap, f, cr) | ||
302 | #define VOP_SETATTR(vp, vap, f, cr, rv) \ | ||
303 | rv = _VOP_(vop_setattr, vp)((vp)->v_fbhv, vap, f, cr) | ||
304 | #define VOP_ACCESS(vp, mode, cr, rv) \ | ||
305 | rv = _VOP_(vop_access, vp)((vp)->v_fbhv, mode, cr) | ||
306 | #define VOP_LOOKUP(vp,d,vpp,f,rdir,cr,rv) \ | ||
307 | rv = _VOP_(vop_lookup, vp)((vp)->v_fbhv,d,vpp,f,rdir,cr) | ||
308 | #define VOP_CREATE(dvp,d,vap,vpp,cr,rv) \ | ||
309 | rv = _VOP_(vop_create, dvp)((dvp)->v_fbhv,d,vap,vpp,cr) | ||
310 | #define VOP_REMOVE(dvp,d,cr,rv) \ | ||
311 | rv = _VOP_(vop_remove, dvp)((dvp)->v_fbhv,d,cr) | ||
312 | #define VOP_LINK(tdvp,fvp,d,cr,rv) \ | ||
313 | rv = _VOP_(vop_link, tdvp)((tdvp)->v_fbhv,fvp,d,cr) | ||
314 | #define VOP_RENAME(fvp,fnm,tdvp,tnm,cr,rv) \ | ||
315 | rv = _VOP_(vop_rename, fvp)((fvp)->v_fbhv,fnm,tdvp,tnm,cr) | ||
316 | #define VOP_MKDIR(dp,d,vap,vpp,cr,rv) \ | ||
317 | rv = _VOP_(vop_mkdir, dp)((dp)->v_fbhv,d,vap,vpp,cr) | ||
318 | #define VOP_RMDIR(dp,d,cr,rv) \ | ||
319 | rv = _VOP_(vop_rmdir, dp)((dp)->v_fbhv,d,cr) | ||
320 | #define VOP_READDIR(vp,uiop,cr,eofp,rv) \ | ||
321 | rv = _VOP_(vop_readdir, vp)((vp)->v_fbhv,uiop,cr,eofp) | ||
322 | #define VOP_SYMLINK(dvp,d,vap,tnm,vpp,cr,rv) \ | ||
323 | rv = _VOP_(vop_symlink, dvp) ((dvp)->v_fbhv,d,vap,tnm,vpp,cr) | ||
324 | #define VOP_READLINK(vp,uiop,fl,cr,rv) \ | ||
325 | rv = _VOP_(vop_readlink, vp)((vp)->v_fbhv,uiop,fl,cr) | ||
326 | #define VOP_FSYNC(vp,f,cr,b,e,rv) \ | ||
327 | rv = _VOP_(vop_fsync, vp)((vp)->v_fbhv,f,cr,b,e) | ||
328 | #define VOP_INACTIVE(vp, cr, rv) \ | ||
329 | rv = _VOP_(vop_inactive, vp)((vp)->v_fbhv, cr) | ||
330 | #define VOP_RELEASE(vp, rv) \ | ||
331 | rv = _VOP_(vop_release, vp)((vp)->v_fbhv) | ||
332 | #define VOP_FID2(vp, fidp, rv) \ | ||
333 | rv = _VOP_(vop_fid2, vp)((vp)->v_fbhv, fidp) | ||
334 | #define VOP_RWLOCK(vp,i) \ | ||
335 | (void)_VOP_(vop_rwlock, vp)((vp)->v_fbhv, i) | ||
336 | #define VOP_RWLOCK_TRY(vp,i) \ | ||
337 | _VOP_(vop_rwlock, vp)((vp)->v_fbhv, i) | ||
338 | #define VOP_RWUNLOCK(vp,i) \ | ||
339 | (void)_VOP_(vop_rwunlock, vp)((vp)->v_fbhv, i) | ||
340 | #define VOP_FRLOCK(vp,c,fl,flags,offset,fr,rv) \ | ||
341 | rv = _VOP_(vop_frlock, vp)((vp)->v_fbhv,c,fl,flags,offset,fr) | ||
342 | #define VOP_RECLAIM(vp, rv) \ | ||
343 | rv = _VOP_(vop_reclaim, vp)((vp)->v_fbhv) | ||
344 | #define VOP_ATTR_GET(vp, name, val, vallenp, fl, cred, rv) \ | ||
345 | rv = _VOP_(vop_attr_get, vp)((vp)->v_fbhv,name,val,vallenp,fl,cred) | ||
346 | #define VOP_ATTR_SET(vp, name, val, vallen, fl, cred, rv) \ | ||
347 | rv = _VOP_(vop_attr_set, vp)((vp)->v_fbhv,name,val,vallen,fl,cred) | ||
348 | #define VOP_ATTR_REMOVE(vp, name, flags, cred, rv) \ | ||
349 | rv = _VOP_(vop_attr_remove, vp)((vp)->v_fbhv,name,flags,cred) | ||
350 | #define VOP_ATTR_LIST(vp, buf, buflen, fl, cursor, cred, rv) \ | ||
351 | rv = _VOP_(vop_attr_list, vp)((vp)->v_fbhv,buf,buflen,fl,cursor,cred) | ||
352 | #define VOP_LINK_REMOVED(vp, dvp, linkzero) \ | ||
353 | (void)_VOP_(vop_link_removed, vp)((vp)->v_fbhv, dvp, linkzero) | ||
354 | #define VOP_VNODE_CHANGE(vp, cmd, val) \ | ||
355 | (void)_VOP_(vop_vnode_change, vp)((vp)->v_fbhv,cmd,val) | ||
356 | /* | ||
357 | * These are page cache functions that now go thru VOPs. | ||
358 | * 'last' parameter is unused and left in for IRIX compatibility | ||
359 | */ | ||
360 | #define VOP_TOSS_PAGES(vp, first, last, fiopt) \ | ||
361 | _VOP_(vop_tosspages, vp)((vp)->v_fbhv,first, last, fiopt) | ||
362 | /* | ||
363 | * 'last' parameter is unused and left in for IRIX compatibility | ||
364 | */ | ||
365 | #define VOP_FLUSHINVAL_PAGES(vp, first, last, fiopt) \ | ||
366 | _VOP_(vop_flushinval_pages, vp)((vp)->v_fbhv,first,last,fiopt) | ||
367 | /* | ||
368 | * 'last' parameter is unused and left in for IRIX compatibility | ||
369 | */ | 250 | */ |
370 | #define VOP_FLUSH_PAGES(vp, first, last, flags, fiopt, rv) \ | 251 | #define VNHEAD(vp) ((vp)->v_bh.bh_first) |
371 | rv = _VOP_(vop_flush_pages, vp)((vp)->v_fbhv,first,last,flags,fiopt) | 252 | #define VOP(op, vp) (*((bhv_vnodeops_t *)VNHEAD(vp)->bd_ops)->op) |
372 | #define VOP_IOCTL(vp, inode, filp, fl, cmd, arg, rv) \ | 253 | #define bhv_vop_open(vp, cr) VOP(vop_open, vp)(VNHEAD(vp),cr) |
373 | rv = _VOP_(vop_ioctl, vp)((vp)->v_fbhv,inode,filp,fl,cmd,arg) | 254 | #define bhv_vop_close(vp, f,last,cr) VOP(vop_close, vp)(VNHEAD(vp),f,last,cr) |
374 | #define VOP_IFLUSH(vp, flags, rv) \ | 255 | #define bhv_vop_read(vp,file,iov,segs,offset,ioflags,cr) \ |
375 | rv = _VOP_(vop_iflush, vp)((vp)->v_fbhv, flags) | 256 | VOP(vop_read, vp)(VNHEAD(vp),file,iov,segs,offset,ioflags,cr) |
257 | #define bhv_vop_write(vp,file,iov,segs,offset,ioflags,cr) \ | ||
258 | VOP(vop_write, vp)(VNHEAD(vp),file,iov,segs,offset,ioflags,cr) | ||
259 | #define bhv_vop_sendfile(vp,f,off,ioflags,cnt,act,targ,cr) \ | ||
260 | VOP(vop_sendfile, vp)(VNHEAD(vp),f,off,ioflags,cnt,act,targ,cr) | ||
261 | #define bhv_vop_splice_read(vp,f,o,pipe,cnt,fl,iofl,cr) \ | ||
262 | VOP(vop_splice_read, vp)(VNHEAD(vp),f,o,pipe,cnt,fl,iofl,cr) | ||
263 | #define bhv_vop_splice_write(vp,f,o,pipe,cnt,fl,iofl,cr) \ | ||
264 | VOP(vop_splice_write, vp)(VNHEAD(vp),f,o,pipe,cnt,fl,iofl,cr) | ||
265 | #define bhv_vop_bmap(vp,of,sz,rw,b,n) \ | ||
266 | VOP(vop_bmap, vp)(VNHEAD(vp),of,sz,rw,b,n) | ||
267 | #define bhv_vop_getattr(vp, vap,f,cr) \ | ||
268 | VOP(vop_getattr, vp)(VNHEAD(vp), vap,f,cr) | ||
269 | #define bhv_vop_setattr(vp, vap,f,cr) \ | ||
270 | VOP(vop_setattr, vp)(VNHEAD(vp), vap,f,cr) | ||
271 | #define bhv_vop_access(vp, mode,cr) VOP(vop_access, vp)(VNHEAD(vp), mode,cr) | ||
272 | #define bhv_vop_lookup(vp,d,vpp,f,rdir,cr) \ | ||
273 | VOP(vop_lookup, vp)(VNHEAD(vp),d,vpp,f,rdir,cr) | ||
274 | #define bhv_vop_create(dvp,d,vap,vpp,cr) \ | ||
275 | VOP(vop_create, dvp)(VNHEAD(dvp),d,vap,vpp,cr) | ||
276 | #define bhv_vop_remove(dvp,d,cr) VOP(vop_remove, dvp)(VNHEAD(dvp),d,cr) | ||
277 | #define bhv_vop_link(dvp,fvp,d,cr) VOP(vop_link, dvp)(VNHEAD(dvp),fvp,d,cr) | ||
278 | #define bhv_vop_rename(fvp,fnm,tdvp,tnm,cr) \ | ||
279 | VOP(vop_rename, fvp)(VNHEAD(fvp),fnm,tdvp,tnm,cr) | ||
280 | #define bhv_vop_mkdir(dp,d,vap,vpp,cr) \ | ||
281 | VOP(vop_mkdir, dp)(VNHEAD(dp),d,vap,vpp,cr) | ||
282 | #define bhv_vop_rmdir(dp,d,cr) VOP(vop_rmdir, dp)(VNHEAD(dp),d,cr) | ||
283 | #define bhv_vop_readdir(vp,uiop,cr,eofp) \ | ||
284 | VOP(vop_readdir, vp)(VNHEAD(vp),uiop,cr,eofp) | ||
285 | #define bhv_vop_symlink(dvp,d,vap,tnm,vpp,cr) \ | ||
286 | VOP(vop_symlink, dvp)(VNHEAD(dvp),d,vap,tnm,vpp,cr) | ||
287 | #define bhv_vop_readlink(vp,uiop,fl,cr) \ | ||
288 | VOP(vop_readlink, vp)(VNHEAD(vp),uiop,fl,cr) | ||
289 | #define bhv_vop_fsync(vp,f,cr,b,e) VOP(vop_fsync, vp)(VNHEAD(vp),f,cr,b,e) | ||
290 | #define bhv_vop_inactive(vp,cr) VOP(vop_inactive, vp)(VNHEAD(vp),cr) | ||
291 | #define bhv_vop_release(vp) VOP(vop_release, vp)(VNHEAD(vp)) | ||
292 | #define bhv_vop_fid2(vp,fidp) VOP(vop_fid2, vp)(VNHEAD(vp),fidp) | ||
293 | #define bhv_vop_rwlock(vp,i) VOP(vop_rwlock, vp)(VNHEAD(vp),i) | ||
294 | #define bhv_vop_rwlock_try(vp,i) VOP(vop_rwlock, vp)(VNHEAD(vp),i) | ||
295 | #define bhv_vop_rwunlock(vp,i) VOP(vop_rwunlock, vp)(VNHEAD(vp),i) | ||
296 | #define bhv_vop_frlock(vp,c,fl,flags,offset,fr) \ | ||
297 | VOP(vop_frlock, vp)(VNHEAD(vp),c,fl,flags,offset,fr) | ||
298 | #define bhv_vop_reclaim(vp) VOP(vop_reclaim, vp)(VNHEAD(vp)) | ||
299 | #define bhv_vop_attr_get(vp, name, val, vallenp, fl, cred) \ | ||
300 | VOP(vop_attr_get, vp)(VNHEAD(vp),name,val,vallenp,fl,cred) | ||
301 | #define bhv_vop_attr_set(vp, name, val, vallen, fl, cred) \ | ||
302 | VOP(vop_attr_set, vp)(VNHEAD(vp),name,val,vallen,fl,cred) | ||
303 | #define bhv_vop_attr_remove(vp, name, flags, cred) \ | ||
304 | VOP(vop_attr_remove, vp)(VNHEAD(vp),name,flags,cred) | ||
305 | #define bhv_vop_attr_list(vp, buf, buflen, fl, cursor, cred) \ | ||
306 | VOP(vop_attr_list, vp)(VNHEAD(vp),buf,buflen,fl,cursor,cred) | ||
307 | #define bhv_vop_link_removed(vp, dvp, linkzero) \ | ||
308 | VOP(vop_link_removed, vp)(VNHEAD(vp), dvp, linkzero) | ||
309 | #define bhv_vop_vnode_change(vp, cmd, val) \ | ||
310 | VOP(vop_vnode_change, vp)(VNHEAD(vp), cmd, val) | ||
311 | #define bhv_vop_toss_pages(vp, first, last, fiopt) \ | ||
312 | VOP(vop_tosspages, vp)(VNHEAD(vp), first, last, fiopt) | ||
313 | #define bhv_vop_flushinval_pages(vp, first, last, fiopt) \ | ||
314 | VOP(vop_flushinval_pages, vp)(VNHEAD(vp),first,last,fiopt) | ||
315 | #define bhv_vop_flush_pages(vp, first, last, flags, fiopt) \ | ||
316 | VOP(vop_flush_pages, vp)(VNHEAD(vp),first,last,flags,fiopt) | ||
317 | #define bhv_vop_ioctl(vp, inode, filp, fl, cmd, arg) \ | ||
318 | VOP(vop_ioctl, vp)(VNHEAD(vp),inode,filp,fl,cmd,arg) | ||
319 | #define bhv_vop_iflush(vp, flags) VOP(vop_iflush, vp)(VNHEAD(vp), flags) | ||
376 | 320 | ||
377 | /* | 321 | /* |
378 | * Flags for read/write calls - same values as IRIX | 322 | * Flags for read/write calls - same values as IRIX |
@@ -382,7 +326,7 @@ typedef struct vnodeops { | |||
382 | #define IO_INVIS 0x00020 /* don't update inode timestamps */ | 326 | #define IO_INVIS 0x00020 /* don't update inode timestamps */ |
383 | 327 | ||
384 | /* | 328 | /* |
385 | * Flags for VOP_IFLUSH call | 329 | * Flags for vop_iflush call |
386 | */ | 330 | */ |
387 | #define FLUSH_SYNC 1 /* wait for flush to complete */ | 331 | #define FLUSH_SYNC 1 /* wait for flush to complete */ |
388 | #define FLUSH_INODE 2 /* flush the inode itself */ | 332 | #define FLUSH_INODE 2 /* flush the inode itself */ |
@@ -390,8 +334,7 @@ typedef struct vnodeops { | |||
390 | * this inode out to disk */ | 334 | * this inode out to disk */ |
391 | 335 | ||
392 | /* | 336 | /* |
393 | * Flush/Invalidate options for VOP_TOSS_PAGES, VOP_FLUSHINVAL_PAGES and | 337 | * Flush/Invalidate options for vop_toss/flush/flushinval_pages. |
394 | * VOP_FLUSH_PAGES. | ||
395 | */ | 338 | */ |
396 | #define FI_NONE 0 /* none */ | 339 | #define FI_NONE 0 /* none */ |
397 | #define FI_REMAPF 1 /* Do a remapf prior to the operation */ | 340 | #define FI_REMAPF 1 /* Do a remapf prior to the operation */ |
@@ -497,31 +440,17 @@ typedef struct vattr { | |||
497 | (VN_ISREG(vp) && ((mode) & (VSGID|(VEXEC>>3))) == VSGID) | 440 | (VN_ISREG(vp) && ((mode) & (VSGID|(VEXEC>>3))) == VSGID) |
498 | 441 | ||
499 | extern void vn_init(void); | 442 | extern void vn_init(void); |
500 | extern vnode_t *vn_initialize(struct inode *); | 443 | extern bhv_vnode_t *vn_initialize(struct inode *); |
501 | 444 | extern int vn_revalidate(struct bhv_vnode *); | |
502 | /* | 445 | extern int __vn_revalidate(struct bhv_vnode *, vattr_t *); |
503 | * vnode_map structures _must_ match vn_epoch and vnode structure sizes. | 446 | extern void vn_revalidate_core(struct bhv_vnode *, vattr_t *); |
504 | */ | ||
505 | typedef struct vnode_map { | ||
506 | bhv_vfs_t *v_vfsp; | ||
507 | vnumber_t v_number; /* in-core vnode number */ | ||
508 | xfs_ino_t v_ino; /* inode # */ | ||
509 | } vmap_t; | ||
510 | |||
511 | #define VMAP(vp, vmap) {(vmap).v_vfsp = (vp)->v_vfsp, \ | ||
512 | (vmap).v_number = (vp)->v_number, \ | ||
513 | (vmap).v_ino = (vp)->v_inode.i_ino; } | ||
514 | |||
515 | extern int vn_revalidate(struct vnode *); | ||
516 | extern int __vn_revalidate(struct vnode *, vattr_t *); | ||
517 | extern void vn_revalidate_core(struct vnode *, vattr_t *); | ||
518 | 447 | ||
519 | extern void vn_iowait(struct vnode *vp); | 448 | extern void vn_iowait(struct bhv_vnode *vp); |
520 | extern void vn_iowake(struct vnode *vp); | 449 | extern void vn_iowake(struct bhv_vnode *vp); |
521 | 450 | ||
522 | extern void vn_ioerror(struct vnode *vp, int error, char *f, int l); | 451 | extern void vn_ioerror(struct bhv_vnode *vp, int error, char *f, int l); |
523 | 452 | ||
524 | static inline int vn_count(struct vnode *vp) | 453 | static inline int vn_count(struct bhv_vnode *vp) |
525 | { | 454 | { |
526 | return atomic_read(&vn_to_inode(vp)->i_count); | 455 | return atomic_read(&vn_to_inode(vp)->i_count); |
527 | } | 456 | } |
@@ -529,7 +458,7 @@ static inline int vn_count(struct vnode *vp) | |||
529 | /* | 458 | /* |
530 | * Vnode reference counting functions (and macros for compatibility). | 459 | * Vnode reference counting functions (and macros for compatibility). |
531 | */ | 460 | */ |
532 | extern vnode_t *vn_hold(struct vnode *); | 461 | extern bhv_vnode_t *vn_hold(struct bhv_vnode *); |
533 | 462 | ||
534 | #if defined(XFS_VNODE_TRACE) | 463 | #if defined(XFS_VNODE_TRACE) |
535 | #define VN_HOLD(vp) \ | 464 | #define VN_HOLD(vp) \ |
@@ -543,7 +472,7 @@ extern vnode_t *vn_hold(struct vnode *); | |||
543 | #define VN_RELE(vp) (iput(vn_to_inode(vp))) | 472 | #define VN_RELE(vp) (iput(vn_to_inode(vp))) |
544 | #endif | 473 | #endif |
545 | 474 | ||
546 | static inline struct vnode *vn_grab(struct vnode *vp) | 475 | static inline struct bhv_vnode *vn_grab(struct bhv_vnode *vp) |
547 | { | 476 | { |
548 | struct inode *inode = igrab(vn_to_inode(vp)); | 477 | struct inode *inode = igrab(vn_to_inode(vp)); |
549 | return inode ? vn_from_inode(inode) : NULL; | 478 | return inode ? vn_from_inode(inode) : NULL; |
@@ -562,14 +491,14 @@ static inline struct vnode *vn_grab(struct vnode *vp) | |||
562 | #define VN_LOCK(vp) mutex_spinlock(&(vp)->v_lock) | 491 | #define VN_LOCK(vp) mutex_spinlock(&(vp)->v_lock) |
563 | #define VN_UNLOCK(vp, s) mutex_spinunlock(&(vp)->v_lock, s) | 492 | #define VN_UNLOCK(vp, s) mutex_spinunlock(&(vp)->v_lock, s) |
564 | 493 | ||
565 | static __inline__ void vn_flagset(struct vnode *vp, uint flag) | 494 | static __inline__ void vn_flagset(struct bhv_vnode *vp, uint flag) |
566 | { | 495 | { |
567 | spin_lock(&vp->v_lock); | 496 | spin_lock(&vp->v_lock); |
568 | vp->v_flag |= flag; | 497 | vp->v_flag |= flag; |
569 | spin_unlock(&vp->v_lock); | 498 | spin_unlock(&vp->v_lock); |
570 | } | 499 | } |
571 | 500 | ||
572 | static __inline__ uint vn_flagclr(struct vnode *vp, uint flag) | 501 | static __inline__ uint vn_flagclr(struct bhv_vnode *vp, uint flag) |
573 | { | 502 | { |
574 | uint cleared; | 503 | uint cleared; |
575 | 504 | ||
@@ -588,12 +517,12 @@ static __inline__ uint vn_flagclr(struct vnode *vp, uint flag) | |||
588 | /* | 517 | /* |
589 | * Dealing with bad inodes | 518 | * Dealing with bad inodes |
590 | */ | 519 | */ |
591 | static inline void vn_mark_bad(struct vnode *vp) | 520 | static inline void vn_mark_bad(struct bhv_vnode *vp) |
592 | { | 521 | { |
593 | make_bad_inode(vn_to_inode(vp)); | 522 | make_bad_inode(vn_to_inode(vp)); |
594 | } | 523 | } |
595 | 524 | ||
596 | static inline int VN_BAD(struct vnode *vp) | 525 | static inline int VN_BAD(struct bhv_vnode *vp) |
597 | { | 526 | { |
598 | return is_bad_inode(vn_to_inode(vp)); | 527 | return is_bad_inode(vn_to_inode(vp)); |
599 | } | 528 | } |
@@ -601,18 +530,18 @@ static inline int VN_BAD(struct vnode *vp) | |||
601 | /* | 530 | /* |
602 | * Extracting atime values in various formats | 531 | * Extracting atime values in various formats |
603 | */ | 532 | */ |
604 | static inline void vn_atime_to_bstime(struct vnode *vp, xfs_bstime_t *bs_atime) | 533 | static inline void vn_atime_to_bstime(bhv_vnode_t *vp, xfs_bstime_t *bs_atime) |
605 | { | 534 | { |
606 | bs_atime->tv_sec = vp->v_inode.i_atime.tv_sec; | 535 | bs_atime->tv_sec = vp->v_inode.i_atime.tv_sec; |
607 | bs_atime->tv_nsec = vp->v_inode.i_atime.tv_nsec; | 536 | bs_atime->tv_nsec = vp->v_inode.i_atime.tv_nsec; |
608 | } | 537 | } |
609 | 538 | ||
610 | static inline void vn_atime_to_timespec(struct vnode *vp, struct timespec *ts) | 539 | static inline void vn_atime_to_timespec(bhv_vnode_t *vp, struct timespec *ts) |
611 | { | 540 | { |
612 | *ts = vp->v_inode.i_atime; | 541 | *ts = vp->v_inode.i_atime; |
613 | } | 542 | } |
614 | 543 | ||
615 | static inline void vn_atime_to_time_t(struct vnode *vp, time_t *tt) | 544 | static inline void vn_atime_to_time_t(bhv_vnode_t *vp, time_t *tt) |
616 | { | 545 | { |
617 | *tt = vp->v_inode.i_atime.tv_sec; | 546 | *tt = vp->v_inode.i_atime.tv_sec; |
618 | } | 547 | } |
@@ -627,7 +556,7 @@ static inline void vn_atime_to_time_t(struct vnode *vp, time_t *tt) | |||
627 | #define VN_TRUNC(vp) ((vp)->v_flag & VTRUNCATED) | 556 | #define VN_TRUNC(vp) ((vp)->v_flag & VTRUNCATED) |
628 | 557 | ||
629 | /* | 558 | /* |
630 | * Flags to VOP_SETATTR/VOP_GETATTR. | 559 | * Flags to vop_setattr/getattr. |
631 | */ | 560 | */ |
632 | #define ATTR_UTIME 0x01 /* non-default utime(2) request */ | 561 | #define ATTR_UTIME 0x01 /* non-default utime(2) request */ |
633 | #define ATTR_DMI 0x08 /* invocation from a DMI function */ | 562 | #define ATTR_DMI 0x08 /* invocation from a DMI function */ |
@@ -637,7 +566,7 @@ static inline void vn_atime_to_time_t(struct vnode *vp, time_t *tt) | |||
637 | #define ATTR_NOSIZETOK 0x400 /* Don't get the SIZE token */ | 566 | #define ATTR_NOSIZETOK 0x400 /* Don't get the SIZE token */ |
638 | 567 | ||
639 | /* | 568 | /* |
640 | * Flags to VOP_FSYNC and VOP_RECLAIM. | 569 | * Flags to vop_fsync/reclaim. |
641 | */ | 570 | */ |
642 | #define FSYNC_NOWAIT 0 /* asynchronous flush */ | 571 | #define FSYNC_NOWAIT 0 /* asynchronous flush */ |
643 | #define FSYNC_WAIT 0x1 /* synchronous fsync or forced reclaim */ | 572 | #define FSYNC_WAIT 0x1 /* synchronous fsync or forced reclaim */ |
@@ -656,11 +585,11 @@ static inline void vn_atime_to_time_t(struct vnode *vp, time_t *tt) | |||
656 | #define VNODE_KTRACE_REF 4 | 585 | #define VNODE_KTRACE_REF 4 |
657 | #define VNODE_KTRACE_RELE 5 | 586 | #define VNODE_KTRACE_RELE 5 |
658 | 587 | ||
659 | extern void vn_trace_entry(struct vnode *, const char *, inst_t *); | 588 | extern void vn_trace_entry(struct bhv_vnode *, const char *, inst_t *); |
660 | extern void vn_trace_exit(struct vnode *, const char *, inst_t *); | 589 | extern void vn_trace_exit(struct bhv_vnode *, const char *, inst_t *); |
661 | extern void vn_trace_hold(struct vnode *, char *, int, inst_t *); | 590 | extern void vn_trace_hold(struct bhv_vnode *, char *, int, inst_t *); |
662 | extern void vn_trace_ref(struct vnode *, char *, int, inst_t *); | 591 | extern void vn_trace_ref(struct bhv_vnode *, char *, int, inst_t *); |
663 | extern void vn_trace_rele(struct vnode *, char *, int, inst_t *); | 592 | extern void vn_trace_rele(struct bhv_vnode *, char *, int, inst_t *); |
664 | 593 | ||
665 | #define VN_TRACE(vp) \ | 594 | #define VN_TRACE(vp) \ |
666 | vn_trace_ref(vp, __FILE__, __LINE__, (inst_t *)__return_address) | 595 | vn_trace_ref(vp, __FILE__, __LINE__, (inst_t *)__return_address) |
diff --git a/fs/xfs/quota/xfs_qm_bhv.c b/fs/xfs/quota/xfs_qm_bhv.c index 78f5962e5781..ad9ab104946a 100644 --- a/fs/xfs/quota/xfs_qm_bhv.c +++ b/fs/xfs/quota/xfs_qm_bhv.c | |||
@@ -192,7 +192,7 @@ STATIC int | |||
192 | xfs_qm_statvfs( | 192 | xfs_qm_statvfs( |
193 | struct bhv_desc *bhv, | 193 | struct bhv_desc *bhv, |
194 | xfs_statfs_t *statp, | 194 | xfs_statfs_t *statp, |
195 | struct vnode *vnode) | 195 | struct bhv_vnode *vnode) |
196 | { | 196 | { |
197 | xfs_mount_t *mp; | 197 | xfs_mount_t *mp; |
198 | xfs_inode_t *ip; | 198 | xfs_inode_t *ip; |
diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index afc7c1c696b8..c93072be6792 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c | |||
@@ -1035,7 +1035,7 @@ xfs_qm_dqrele_all_inodes( | |||
1035 | { | 1035 | { |
1036 | xfs_inode_t *ip, *topino; | 1036 | xfs_inode_t *ip, *topino; |
1037 | uint ireclaims; | 1037 | uint ireclaims; |
1038 | vnode_t *vp; | 1038 | bhv_vnode_t *vp; |
1039 | boolean_t vnode_refd; | 1039 | boolean_t vnode_refd; |
1040 | 1040 | ||
1041 | ASSERT(mp->m_quotainfo); | 1041 | ASSERT(mp->m_quotainfo); |
diff --git a/fs/xfs/xfs_acl.c b/fs/xfs/xfs_acl.c index 2539af34eb63..8c300da4e7ab 100644 --- a/fs/xfs/xfs_acl.c +++ b/fs/xfs/xfs_acl.c | |||
@@ -39,15 +39,15 @@ | |||
39 | #include <linux/capability.h> | 39 | #include <linux/capability.h> |
40 | #include <linux/posix_acl_xattr.h> | 40 | #include <linux/posix_acl_xattr.h> |
41 | 41 | ||
42 | STATIC int xfs_acl_setmode(vnode_t *, xfs_acl_t *, int *); | 42 | STATIC int xfs_acl_setmode(bhv_vnode_t *, xfs_acl_t *, int *); |
43 | STATIC void xfs_acl_filter_mode(mode_t, xfs_acl_t *); | 43 | STATIC void xfs_acl_filter_mode(mode_t, xfs_acl_t *); |
44 | STATIC void xfs_acl_get_endian(xfs_acl_t *); | 44 | STATIC void xfs_acl_get_endian(xfs_acl_t *); |
45 | STATIC int xfs_acl_access(uid_t, gid_t, xfs_acl_t *, mode_t, cred_t *); | 45 | STATIC int xfs_acl_access(uid_t, gid_t, xfs_acl_t *, mode_t, cred_t *); |
46 | STATIC int xfs_acl_invalid(xfs_acl_t *); | 46 | STATIC int xfs_acl_invalid(xfs_acl_t *); |
47 | STATIC void xfs_acl_sync_mode(mode_t, xfs_acl_t *); | 47 | STATIC void xfs_acl_sync_mode(mode_t, xfs_acl_t *); |
48 | STATIC void xfs_acl_get_attr(vnode_t *, xfs_acl_t *, int, int, int *); | 48 | STATIC void xfs_acl_get_attr(bhv_vnode_t *, xfs_acl_t *, int, int, int *); |
49 | STATIC void xfs_acl_set_attr(vnode_t *, xfs_acl_t *, int, int *); | 49 | STATIC void xfs_acl_set_attr(bhv_vnode_t *, xfs_acl_t *, int, int *); |
50 | STATIC int xfs_acl_allow_set(vnode_t *, int); | 50 | STATIC int xfs_acl_allow_set(bhv_vnode_t *, int); |
51 | 51 | ||
52 | kmem_zone_t *xfs_acl_zone; | 52 | kmem_zone_t *xfs_acl_zone; |
53 | 53 | ||
@@ -57,7 +57,7 @@ kmem_zone_t *xfs_acl_zone; | |||
57 | */ | 57 | */ |
58 | int | 58 | int |
59 | xfs_acl_vhasacl_access( | 59 | xfs_acl_vhasacl_access( |
60 | vnode_t *vp) | 60 | bhv_vnode_t *vp) |
61 | { | 61 | { |
62 | int error; | 62 | int error; |
63 | 63 | ||
@@ -70,7 +70,7 @@ xfs_acl_vhasacl_access( | |||
70 | */ | 70 | */ |
71 | int | 71 | int |
72 | xfs_acl_vhasacl_default( | 72 | xfs_acl_vhasacl_default( |
73 | vnode_t *vp) | 73 | bhv_vnode_t *vp) |
74 | { | 74 | { |
75 | int error; | 75 | int error; |
76 | 76 | ||
@@ -209,7 +209,7 @@ posix_acl_xfs_to_xattr( | |||
209 | 209 | ||
210 | int | 210 | int |
211 | xfs_acl_vget( | 211 | xfs_acl_vget( |
212 | vnode_t *vp, | 212 | bhv_vnode_t *vp, |
213 | void *acl, | 213 | void *acl, |
214 | size_t size, | 214 | size_t size, |
215 | int kind) | 215 | int kind) |
@@ -244,7 +244,7 @@ xfs_acl_vget( | |||
244 | vattr_t va; | 244 | vattr_t va; |
245 | 245 | ||
246 | va.va_mask = XFS_AT_MODE; | 246 | va.va_mask = XFS_AT_MODE; |
247 | VOP_GETATTR(vp, &va, 0, sys_cred, error); | 247 | error = bhv_vop_getattr(vp, &va, 0, sys_cred); |
248 | if (error) | 248 | if (error) |
249 | goto out; | 249 | goto out; |
250 | xfs_acl_sync_mode(va.va_mode, xfs_acl); | 250 | xfs_acl_sync_mode(va.va_mode, xfs_acl); |
@@ -260,7 +260,7 @@ out: | |||
260 | 260 | ||
261 | int | 261 | int |
262 | xfs_acl_vremove( | 262 | xfs_acl_vremove( |
263 | vnode_t *vp, | 263 | bhv_vnode_t *vp, |
264 | int kind) | 264 | int kind) |
265 | { | 265 | { |
266 | int error; | 266 | int error; |
@@ -268,9 +268,9 @@ xfs_acl_vremove( | |||
268 | VN_HOLD(vp); | 268 | VN_HOLD(vp); |
269 | error = xfs_acl_allow_set(vp, kind); | 269 | error = xfs_acl_allow_set(vp, kind); |
270 | if (!error) { | 270 | if (!error) { |
271 | VOP_ATTR_REMOVE(vp, kind == _ACL_TYPE_DEFAULT? | 271 | error = bhv_vop_attr_remove(vp, kind == _ACL_TYPE_DEFAULT? |
272 | SGI_ACL_DEFAULT: SGI_ACL_FILE, | 272 | SGI_ACL_DEFAULT: SGI_ACL_FILE, |
273 | ATTR_ROOT, sys_cred, error); | 273 | ATTR_ROOT, sys_cred); |
274 | if (error == ENOATTR) | 274 | if (error == ENOATTR) |
275 | error = 0; /* 'scool */ | 275 | error = 0; /* 'scool */ |
276 | } | 276 | } |
@@ -280,7 +280,7 @@ xfs_acl_vremove( | |||
280 | 280 | ||
281 | int | 281 | int |
282 | xfs_acl_vset( | 282 | xfs_acl_vset( |
283 | vnode_t *vp, | 283 | bhv_vnode_t *vp, |
284 | void *acl, | 284 | void *acl, |
285 | size_t size, | 285 | size_t size, |
286 | int kind) | 286 | int kind) |
@@ -370,7 +370,7 @@ xfs_acl_iaccess( | |||
370 | 370 | ||
371 | STATIC int | 371 | STATIC int |
372 | xfs_acl_allow_set( | 372 | xfs_acl_allow_set( |
373 | vnode_t *vp, | 373 | bhv_vnode_t *vp, |
374 | int kind) | 374 | int kind) |
375 | { | 375 | { |
376 | vattr_t va; | 376 | vattr_t va; |
@@ -383,7 +383,7 @@ xfs_acl_allow_set( | |||
383 | if (vp->v_vfsp->vfs_flag & VFS_RDONLY) | 383 | if (vp->v_vfsp->vfs_flag & VFS_RDONLY) |
384 | return EROFS; | 384 | return EROFS; |
385 | va.va_mask = XFS_AT_UID; | 385 | va.va_mask = XFS_AT_UID; |
386 | VOP_GETATTR(vp, &va, 0, NULL, error); | 386 | error = bhv_vop_getattr(vp, &va, 0, NULL); |
387 | if (error) | 387 | if (error) |
388 | return error; | 388 | return error; |
389 | if (va.va_uid != current->fsuid && !capable(CAP_FOWNER)) | 389 | if (va.va_uid != current->fsuid && !capable(CAP_FOWNER)) |
@@ -606,7 +606,7 @@ xfs_acl_get_endian( | |||
606 | */ | 606 | */ |
607 | STATIC void | 607 | STATIC void |
608 | xfs_acl_get_attr( | 608 | xfs_acl_get_attr( |
609 | vnode_t *vp, | 609 | bhv_vnode_t *vp, |
610 | xfs_acl_t *aclp, | 610 | xfs_acl_t *aclp, |
611 | int kind, | 611 | int kind, |
612 | int flags, | 612 | int flags, |
@@ -616,9 +616,9 @@ xfs_acl_get_attr( | |||
616 | 616 | ||
617 | ASSERT((flags & ATTR_KERNOVAL) ? (aclp == NULL) : 1); | 617 | ASSERT((flags & ATTR_KERNOVAL) ? (aclp == NULL) : 1); |
618 | flags |= ATTR_ROOT; | 618 | flags |= ATTR_ROOT; |
619 | VOP_ATTR_GET(vp, | 619 | *error = bhv_vop_attr_get(vp, kind == _ACL_TYPE_ACCESS ? |
620 | kind == _ACL_TYPE_ACCESS ? SGI_ACL_FILE : SGI_ACL_DEFAULT, | 620 | SGI_ACL_FILE : SGI_ACL_DEFAULT, |
621 | (char *)aclp, &len, flags, sys_cred, *error); | 621 | (char *)aclp, &len, flags, sys_cred); |
622 | if (*error || (flags & ATTR_KERNOVAL)) | 622 | if (*error || (flags & ATTR_KERNOVAL)) |
623 | return; | 623 | return; |
624 | xfs_acl_get_endian(aclp); | 624 | xfs_acl_get_endian(aclp); |
@@ -629,7 +629,7 @@ xfs_acl_get_attr( | |||
629 | */ | 629 | */ |
630 | STATIC void | 630 | STATIC void |
631 | xfs_acl_set_attr( | 631 | xfs_acl_set_attr( |
632 | vnode_t *vp, | 632 | bhv_vnode_t *vp, |
633 | xfs_acl_t *aclp, | 633 | xfs_acl_t *aclp, |
634 | int kind, | 634 | int kind, |
635 | int *error) | 635 | int *error) |
@@ -654,15 +654,15 @@ xfs_acl_set_attr( | |||
654 | INT_SET(newace->ae_perm, ARCH_CONVERT, ace->ae_perm); | 654 | INT_SET(newace->ae_perm, ARCH_CONVERT, ace->ae_perm); |
655 | } | 655 | } |
656 | INT_SET(newacl->acl_cnt, ARCH_CONVERT, aclp->acl_cnt); | 656 | INT_SET(newacl->acl_cnt, ARCH_CONVERT, aclp->acl_cnt); |
657 | VOP_ATTR_SET(vp, | 657 | *error = bhv_vop_attr_set(vp, kind == _ACL_TYPE_ACCESS ? |
658 | kind == _ACL_TYPE_ACCESS ? SGI_ACL_FILE: SGI_ACL_DEFAULT, | 658 | SGI_ACL_FILE: SGI_ACL_DEFAULT, |
659 | (char *)newacl, len, ATTR_ROOT, sys_cred, *error); | 659 | (char *)newacl, len, ATTR_ROOT, sys_cred); |
660 | _ACL_FREE(newacl); | 660 | _ACL_FREE(newacl); |
661 | } | 661 | } |
662 | 662 | ||
663 | int | 663 | int |
664 | xfs_acl_vtoacl( | 664 | xfs_acl_vtoacl( |
665 | vnode_t *vp, | 665 | bhv_vnode_t *vp, |
666 | xfs_acl_t *access_acl, | 666 | xfs_acl_t *access_acl, |
667 | xfs_acl_t *default_acl) | 667 | xfs_acl_t *default_acl) |
668 | { | 668 | { |
@@ -678,7 +678,7 @@ xfs_acl_vtoacl( | |||
678 | if (!error) { | 678 | if (!error) { |
679 | /* Got the ACL, need the mode... */ | 679 | /* Got the ACL, need the mode... */ |
680 | va.va_mask = XFS_AT_MODE; | 680 | va.va_mask = XFS_AT_MODE; |
681 | VOP_GETATTR(vp, &va, 0, sys_cred, error); | 681 | error = bhv_vop_getattr(vp, &va, 0, sys_cred); |
682 | } | 682 | } |
683 | 683 | ||
684 | if (error) | 684 | if (error) |
@@ -701,7 +701,7 @@ xfs_acl_vtoacl( | |||
701 | */ | 701 | */ |
702 | int | 702 | int |
703 | xfs_acl_inherit( | 703 | xfs_acl_inherit( |
704 | vnode_t *vp, | 704 | bhv_vnode_t *vp, |
705 | vattr_t *vap, | 705 | vattr_t *vap, |
706 | xfs_acl_t *pdaclp) | 706 | xfs_acl_t *pdaclp) |
707 | { | 707 | { |
@@ -757,7 +757,7 @@ xfs_acl_inherit( | |||
757 | */ | 757 | */ |
758 | STATIC int | 758 | STATIC int |
759 | xfs_acl_setmode( | 759 | xfs_acl_setmode( |
760 | vnode_t *vp, | 760 | bhv_vnode_t *vp, |
761 | xfs_acl_t *acl, | 761 | xfs_acl_t *acl, |
762 | int *basicperms) | 762 | int *basicperms) |
763 | { | 763 | { |
@@ -776,7 +776,7 @@ xfs_acl_setmode( | |||
776 | * mode. The m:: bits take precedence over the g:: bits. | 776 | * mode. The m:: bits take precedence over the g:: bits. |
777 | */ | 777 | */ |
778 | va.va_mask = XFS_AT_MODE; | 778 | va.va_mask = XFS_AT_MODE; |
779 | VOP_GETATTR(vp, &va, 0, sys_cred, error); | 779 | error = bhv_vop_getattr(vp, &va, 0, sys_cred); |
780 | if (error) | 780 | if (error) |
781 | return error; | 781 | return error; |
782 | 782 | ||
@@ -810,8 +810,7 @@ xfs_acl_setmode( | |||
810 | if (gap && nomask) | 810 | if (gap && nomask) |
811 | va.va_mode |= gap->ae_perm << 3; | 811 | va.va_mode |= gap->ae_perm << 3; |
812 | 812 | ||
813 | VOP_SETATTR(vp, &va, 0, sys_cred, error); | 813 | return bhv_vop_setattr(vp, &va, 0, sys_cred); |
814 | return error; | ||
815 | } | 814 | } |
816 | 815 | ||
817 | /* | 816 | /* |
diff --git a/fs/xfs/xfs_acl.h b/fs/xfs/xfs_acl.h index 538d0d65b04c..a57ff4e6d39a 100644 --- a/fs/xfs/xfs_acl.h +++ b/fs/xfs/xfs_acl.h | |||
@@ -50,7 +50,7 @@ typedef struct xfs_acl { | |||
50 | #ifdef CONFIG_XFS_POSIX_ACL | 50 | #ifdef CONFIG_XFS_POSIX_ACL |
51 | 51 | ||
52 | struct vattr; | 52 | struct vattr; |
53 | struct vnode; | 53 | struct bhv_vnode; |
54 | struct xfs_inode; | 54 | struct xfs_inode; |
55 | 55 | ||
56 | extern struct kmem_zone *xfs_acl_zone; | 56 | extern struct kmem_zone *xfs_acl_zone; |
@@ -58,14 +58,14 @@ extern struct kmem_zone *xfs_acl_zone; | |||
58 | (zone) = kmem_zone_init(sizeof(xfs_acl_t), (name)) | 58 | (zone) = kmem_zone_init(sizeof(xfs_acl_t), (name)) |
59 | #define xfs_acl_zone_destroy(zone) kmem_zone_destroy(zone) | 59 | #define xfs_acl_zone_destroy(zone) kmem_zone_destroy(zone) |
60 | 60 | ||
61 | extern int xfs_acl_inherit(struct vnode *, struct vattr *, xfs_acl_t *); | 61 | extern int xfs_acl_inherit(struct bhv_vnode *, struct vattr *, xfs_acl_t *); |
62 | extern int xfs_acl_iaccess(struct xfs_inode *, mode_t, cred_t *); | 62 | extern int xfs_acl_iaccess(struct xfs_inode *, mode_t, cred_t *); |
63 | extern int xfs_acl_vtoacl(struct vnode *, xfs_acl_t *, xfs_acl_t *); | 63 | extern int xfs_acl_vtoacl(struct bhv_vnode *, xfs_acl_t *, xfs_acl_t *); |
64 | extern int xfs_acl_vhasacl_access(struct vnode *); | 64 | extern int xfs_acl_vhasacl_access(struct bhv_vnode *); |
65 | extern int xfs_acl_vhasacl_default(struct vnode *); | 65 | extern int xfs_acl_vhasacl_default(struct bhv_vnode *); |
66 | extern int xfs_acl_vset(struct vnode *, void *, size_t, int); | 66 | extern int xfs_acl_vset(struct bhv_vnode *, void *, size_t, int); |
67 | extern int xfs_acl_vget(struct vnode *, void *, size_t, int); | 67 | extern int xfs_acl_vget(struct bhv_vnode *, void *, size_t, int); |
68 | extern int xfs_acl_vremove(struct vnode *vp, int); | 68 | extern int xfs_acl_vremove(struct bhv_vnode *, int); |
69 | 69 | ||
70 | #define _ACL_TYPE_ACCESS 1 | 70 | #define _ACL_TYPE_ACCESS 1 |
71 | #define _ACL_TYPE_DEFAULT 2 | 71 | #define _ACL_TYPE_DEFAULT 2 |
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index 3ef41e75d08a..4dcef8d1c32f 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c | |||
@@ -2324,56 +2324,56 @@ xfs_attr_trace_enter(int type, char *where, | |||
2324 | 2324 | ||
2325 | STATIC int | 2325 | STATIC int |
2326 | posix_acl_access_set( | 2326 | posix_acl_access_set( |
2327 | vnode_t *vp, char *name, void *data, size_t size, int xflags) | 2327 | bhv_vnode_t *vp, char *name, void *data, size_t size, int xflags) |
2328 | { | 2328 | { |
2329 | return xfs_acl_vset(vp, data, size, _ACL_TYPE_ACCESS); | 2329 | return xfs_acl_vset(vp, data, size, _ACL_TYPE_ACCESS); |
2330 | } | 2330 | } |
2331 | 2331 | ||
2332 | STATIC int | 2332 | STATIC int |
2333 | posix_acl_access_remove( | 2333 | posix_acl_access_remove( |
2334 | struct vnode *vp, char *name, int xflags) | 2334 | bhv_vnode_t *vp, char *name, int xflags) |
2335 | { | 2335 | { |
2336 | return xfs_acl_vremove(vp, _ACL_TYPE_ACCESS); | 2336 | return xfs_acl_vremove(vp, _ACL_TYPE_ACCESS); |
2337 | } | 2337 | } |
2338 | 2338 | ||
2339 | STATIC int | 2339 | STATIC int |
2340 | posix_acl_access_get( | 2340 | posix_acl_access_get( |
2341 | vnode_t *vp, char *name, void *data, size_t size, int xflags) | 2341 | bhv_vnode_t *vp, char *name, void *data, size_t size, int xflags) |
2342 | { | 2342 | { |
2343 | return xfs_acl_vget(vp, data, size, _ACL_TYPE_ACCESS); | 2343 | return xfs_acl_vget(vp, data, size, _ACL_TYPE_ACCESS); |
2344 | } | 2344 | } |
2345 | 2345 | ||
2346 | STATIC int | 2346 | STATIC int |
2347 | posix_acl_access_exists( | 2347 | posix_acl_access_exists( |
2348 | vnode_t *vp) | 2348 | bhv_vnode_t *vp) |
2349 | { | 2349 | { |
2350 | return xfs_acl_vhasacl_access(vp); | 2350 | return xfs_acl_vhasacl_access(vp); |
2351 | } | 2351 | } |
2352 | 2352 | ||
2353 | STATIC int | 2353 | STATIC int |
2354 | posix_acl_default_set( | 2354 | posix_acl_default_set( |
2355 | vnode_t *vp, char *name, void *data, size_t size, int xflags) | 2355 | bhv_vnode_t *vp, char *name, void *data, size_t size, int xflags) |
2356 | { | 2356 | { |
2357 | return xfs_acl_vset(vp, data, size, _ACL_TYPE_DEFAULT); | 2357 | return xfs_acl_vset(vp, data, size, _ACL_TYPE_DEFAULT); |
2358 | } | 2358 | } |
2359 | 2359 | ||
2360 | STATIC int | 2360 | STATIC int |
2361 | posix_acl_default_get( | 2361 | posix_acl_default_get( |
2362 | vnode_t *vp, char *name, void *data, size_t size, int xflags) | 2362 | bhv_vnode_t *vp, char *name, void *data, size_t size, int xflags) |
2363 | { | 2363 | { |
2364 | return xfs_acl_vget(vp, data, size, _ACL_TYPE_DEFAULT); | 2364 | return xfs_acl_vget(vp, data, size, _ACL_TYPE_DEFAULT); |
2365 | } | 2365 | } |
2366 | 2366 | ||
2367 | STATIC int | 2367 | STATIC int |
2368 | posix_acl_default_remove( | 2368 | posix_acl_default_remove( |
2369 | struct vnode *vp, char *name, int xflags) | 2369 | bhv_vnode_t *vp, char *name, int xflags) |
2370 | { | 2370 | { |
2371 | return xfs_acl_vremove(vp, _ACL_TYPE_DEFAULT); | 2371 | return xfs_acl_vremove(vp, _ACL_TYPE_DEFAULT); |
2372 | } | 2372 | } |
2373 | 2373 | ||
2374 | STATIC int | 2374 | STATIC int |
2375 | posix_acl_default_exists( | 2375 | posix_acl_default_exists( |
2376 | vnode_t *vp) | 2376 | bhv_vnode_t *vp) |
2377 | { | 2377 | { |
2378 | return xfs_acl_vhasacl_default(vp); | 2378 | return xfs_acl_vhasacl_default(vp); |
2379 | } | 2379 | } |
@@ -2406,21 +2406,18 @@ STATIC struct attrnames *attr_system_names[] = | |||
2406 | 2406 | ||
2407 | STATIC int | 2407 | STATIC int |
2408 | attr_generic_set( | 2408 | attr_generic_set( |
2409 | struct vnode *vp, char *name, void *data, size_t size, int xflags) | 2409 | bhv_vnode_t *vp, char *name, void *data, size_t size, int xflags) |
2410 | { | 2410 | { |
2411 | int error; | 2411 | return -bhv_vop_attr_set(vp, name, data, size, xflags, NULL); |
2412 | |||
2413 | VOP_ATTR_SET(vp, name, data, size, xflags, NULL, error); | ||
2414 | return -error; | ||
2415 | } | 2412 | } |
2416 | 2413 | ||
2417 | STATIC int | 2414 | STATIC int |
2418 | attr_generic_get( | 2415 | attr_generic_get( |
2419 | struct vnode *vp, char *name, void *data, size_t size, int xflags) | 2416 | bhv_vnode_t *vp, char *name, void *data, size_t size, int xflags) |
2420 | { | 2417 | { |
2421 | int error, asize = size; | 2418 | int error, asize = size; |
2422 | 2419 | ||
2423 | VOP_ATTR_GET(vp, name, data, &asize, xflags, NULL, error); | 2420 | error = bhv_vop_attr_get(vp, name, data, &asize, xflags, NULL); |
2424 | if (!error) | 2421 | if (!error) |
2425 | return asize; | 2422 | return asize; |
2426 | return -error; | 2423 | return -error; |
@@ -2428,12 +2425,9 @@ attr_generic_get( | |||
2428 | 2425 | ||
2429 | STATIC int | 2426 | STATIC int |
2430 | attr_generic_remove( | 2427 | attr_generic_remove( |
2431 | struct vnode *vp, char *name, int xflags) | 2428 | bhv_vnode_t *vp, char *name, int xflags) |
2432 | { | 2429 | { |
2433 | int error; | 2430 | return -bhv_vop_attr_remove(vp, name, xflags, NULL); |
2434 | |||
2435 | VOP_ATTR_REMOVE(vp, name, xflags, NULL, error); | ||
2436 | return -error; | ||
2437 | } | 2431 | } |
2438 | 2432 | ||
2439 | STATIC int | 2433 | STATIC int |
@@ -2461,7 +2455,7 @@ attr_generic_listadd( | |||
2461 | 2455 | ||
2462 | STATIC int | 2456 | STATIC int |
2463 | attr_system_list( | 2457 | attr_system_list( |
2464 | struct vnode *vp, | 2458 | bhv_vnode_t *vp, |
2465 | void *data, | 2459 | void *data, |
2466 | size_t size, | 2460 | size_t size, |
2467 | ssize_t *result) | 2461 | ssize_t *result) |
@@ -2483,12 +2477,12 @@ attr_system_list( | |||
2483 | 2477 | ||
2484 | int | 2478 | int |
2485 | attr_generic_list( | 2479 | attr_generic_list( |
2486 | struct vnode *vp, void *data, size_t size, int xflags, ssize_t *result) | 2480 | bhv_vnode_t *vp, void *data, size_t size, int xflags, ssize_t *result) |
2487 | { | 2481 | { |
2488 | attrlist_cursor_kern_t cursor = { 0 }; | 2482 | attrlist_cursor_kern_t cursor = { 0 }; |
2489 | int error; | 2483 | int error; |
2490 | 2484 | ||
2491 | VOP_ATTR_LIST(vp, data, size, xflags, &cursor, NULL, error); | 2485 | error = bhv_vop_attr_list(vp, data, size, xflags, &cursor, NULL); |
2492 | if (error > 0) | 2486 | if (error > 0) |
2493 | return -error; | 2487 | return -error; |
2494 | *result = -error; | 2488 | *result = -error; |
@@ -2516,7 +2510,7 @@ attr_lookup_namespace( | |||
2516 | */ | 2510 | */ |
2517 | STATIC int | 2511 | STATIC int |
2518 | attr_user_capable( | 2512 | attr_user_capable( |
2519 | struct vnode *vp, | 2513 | bhv_vnode_t *vp, |
2520 | cred_t *cred) | 2514 | cred_t *cred) |
2521 | { | 2515 | { |
2522 | struct inode *inode = vn_to_inode(vp); | 2516 | struct inode *inode = vn_to_inode(vp); |
@@ -2534,7 +2528,7 @@ attr_user_capable( | |||
2534 | 2528 | ||
2535 | STATIC int | 2529 | STATIC int |
2536 | attr_trusted_capable( | 2530 | attr_trusted_capable( |
2537 | struct vnode *vp, | 2531 | bhv_vnode_t *vp, |
2538 | cred_t *cred) | 2532 | cred_t *cred) |
2539 | { | 2533 | { |
2540 | struct inode *inode = vn_to_inode(vp); | 2534 | struct inode *inode = vn_to_inode(vp); |
@@ -2548,7 +2542,7 @@ attr_trusted_capable( | |||
2548 | 2542 | ||
2549 | STATIC int | 2543 | STATIC int |
2550 | attr_secure_capable( | 2544 | attr_secure_capable( |
2551 | struct vnode *vp, | 2545 | bhv_vnode_t *vp, |
2552 | cred_t *cred) | 2546 | cred_t *cred) |
2553 | { | 2547 | { |
2554 | return -ENOSECURITY; | 2548 | return -ENOSECURITY; |
@@ -2556,7 +2550,7 @@ attr_secure_capable( | |||
2556 | 2550 | ||
2557 | STATIC int | 2551 | STATIC int |
2558 | attr_system_set( | 2552 | attr_system_set( |
2559 | struct vnode *vp, char *name, void *data, size_t size, int xflags) | 2553 | bhv_vnode_t *vp, char *name, void *data, size_t size, int xflags) |
2560 | { | 2554 | { |
2561 | attrnames_t *namesp; | 2555 | attrnames_t *namesp; |
2562 | int error; | 2556 | int error; |
@@ -2575,7 +2569,7 @@ attr_system_set( | |||
2575 | 2569 | ||
2576 | STATIC int | 2570 | STATIC int |
2577 | attr_system_get( | 2571 | attr_system_get( |
2578 | struct vnode *vp, char *name, void *data, size_t size, int xflags) | 2572 | bhv_vnode_t *vp, char *name, void *data, size_t size, int xflags) |
2579 | { | 2573 | { |
2580 | attrnames_t *namesp; | 2574 | attrnames_t *namesp; |
2581 | 2575 | ||
@@ -2587,7 +2581,7 @@ attr_system_get( | |||
2587 | 2581 | ||
2588 | STATIC int | 2582 | STATIC int |
2589 | attr_system_remove( | 2583 | attr_system_remove( |
2590 | struct vnode *vp, char *name, int xflags) | 2584 | bhv_vnode_t *vp, char *name, int xflags) |
2591 | { | 2585 | { |
2592 | attrnames_t *namesp; | 2586 | attrnames_t *namesp; |
2593 | 2587 | ||
diff --git a/fs/xfs/xfs_attr.h b/fs/xfs/xfs_attr.h index b2c7b9fcded3..981633f6c077 100644 --- a/fs/xfs/xfs_attr.h +++ b/fs/xfs/xfs_attr.h | |||
@@ -36,13 +36,13 @@ | |||
36 | *========================================================================*/ | 36 | *========================================================================*/ |
37 | 37 | ||
38 | struct cred; | 38 | struct cred; |
39 | struct vnode; | 39 | struct bhv_vnode; |
40 | 40 | ||
41 | typedef int (*attrset_t)(struct vnode *, char *, void *, size_t, int); | 41 | typedef int (*attrset_t)(struct bhv_vnode *, char *, void *, size_t, int); |
42 | typedef int (*attrget_t)(struct vnode *, char *, void *, size_t, int); | 42 | typedef int (*attrget_t)(struct bhv_vnode *, char *, void *, size_t, int); |
43 | typedef int (*attrremove_t)(struct vnode *, char *, int); | 43 | typedef int (*attrremove_t)(struct bhv_vnode *, char *, int); |
44 | typedef int (*attrexists_t)(struct vnode *); | 44 | typedef int (*attrexists_t)(struct bhv_vnode *); |
45 | typedef int (*attrcapable_t)(struct vnode *, struct cred *); | 45 | typedef int (*attrcapable_t)(struct bhv_vnode *, struct cred *); |
46 | 46 | ||
47 | typedef struct attrnames { | 47 | typedef struct attrnames { |
48 | char * attr_name; | 48 | char * attr_name; |
@@ -63,7 +63,7 @@ extern struct attrnames attr_trusted; | |||
63 | extern struct attrnames *attr_namespaces[ATTR_NAMECOUNT]; | 63 | extern struct attrnames *attr_namespaces[ATTR_NAMECOUNT]; |
64 | 64 | ||
65 | extern attrnames_t *attr_lookup_namespace(char *, attrnames_t **, int); | 65 | extern attrnames_t *attr_lookup_namespace(char *, attrnames_t **, int); |
66 | extern int attr_generic_list(struct vnode *, void *, size_t, int, ssize_t *); | 66 | extern int attr_generic_list(struct bhv_vnode *, void *, size_t, int, ssize_t *); |
67 | 67 | ||
68 | #define ATTR_DONTFOLLOW 0x0001 /* -- unused, from IRIX -- */ | 68 | #define ATTR_DONTFOLLOW 0x0001 /* -- unused, from IRIX -- */ |
69 | #define ATTR_ROOT 0x0002 /* use attrs in root (trusted) namespace */ | 69 | #define ATTR_ROOT 0x0002 /* use attrs in root (trusted) namespace */ |
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index b4529421823b..3050b4c647c0 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c | |||
@@ -5759,7 +5759,7 @@ xfs_getbmap( | |||
5759 | __int64_t fixlen; /* length for -1 case */ | 5759 | __int64_t fixlen; /* length for -1 case */ |
5760 | int i; /* extent number */ | 5760 | int i; /* extent number */ |
5761 | xfs_inode_t *ip; /* xfs incore inode pointer */ | 5761 | xfs_inode_t *ip; /* xfs incore inode pointer */ |
5762 | vnode_t *vp; /* corresponding vnode */ | 5762 | bhv_vnode_t *vp; /* corresponding vnode */ |
5763 | int lock; /* lock state */ | 5763 | int lock; /* lock state */ |
5764 | xfs_bmbt_irec_t *map; /* buffer for user's data */ | 5764 | xfs_bmbt_irec_t *map; /* buffer for user's data */ |
5765 | xfs_mount_t *mp; /* file system mount point */ | 5765 | xfs_mount_t *mp; /* file system mount point */ |
@@ -5856,7 +5856,7 @@ xfs_getbmap( | |||
5856 | 5856 | ||
5857 | if (whichfork == XFS_DATA_FORK && ip->i_delayed_blks) { | 5857 | if (whichfork == XFS_DATA_FORK && ip->i_delayed_blks) { |
5858 | /* xfs_fsize_t last_byte = xfs_file_last_byte(ip); */ | 5858 | /* xfs_fsize_t last_byte = xfs_file_last_byte(ip); */ |
5859 | VOP_FLUSH_PAGES(vp, (xfs_off_t)0, -1, 0, FI_REMAPF, error); | 5859 | error = bhv_vop_flush_pages(vp, (xfs_off_t)0, -1, 0, FI_REMAPF); |
5860 | } | 5860 | } |
5861 | 5861 | ||
5862 | ASSERT(whichfork == XFS_ATTR_FORK || ip->i_delayed_blks == 0); | 5862 | ASSERT(whichfork == XFS_ATTR_FORK || ip->i_delayed_blks == 0); |
diff --git a/fs/xfs/xfs_cap.h b/fs/xfs/xfs_cap.h index d0035c6e9514..7a0e482dd436 100644 --- a/fs/xfs/xfs_cap.h +++ b/fs/xfs/xfs_cap.h | |||
@@ -49,12 +49,12 @@ typedef struct xfs_cap_set { | |||
49 | 49 | ||
50 | #include <linux/posix_cap_xattr.h> | 50 | #include <linux/posix_cap_xattr.h> |
51 | 51 | ||
52 | struct vnode; | 52 | struct bhv_vnode; |
53 | 53 | ||
54 | extern int xfs_cap_vhascap(struct vnode *); | 54 | extern int xfs_cap_vhascap(struct bhv_vnode *); |
55 | extern int xfs_cap_vset(struct vnode *, void *, size_t); | 55 | extern int xfs_cap_vset(struct bhv_vnode *, void *, size_t); |
56 | extern int xfs_cap_vget(struct vnode *, void *, size_t); | 56 | extern int xfs_cap_vget(struct bhv_vnode *, void *, size_t); |
57 | extern int xfs_cap_vremove(struct vnode *vp); | 57 | extern int xfs_cap_vremove(struct bhv_vnode *); |
58 | 58 | ||
59 | #define _CAP_EXISTS xfs_cap_vhascap | 59 | #define _CAP_EXISTS xfs_cap_vhascap |
60 | 60 | ||
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c index 99daf8c0f900..29a6c866f2c3 100644 --- a/fs/xfs/xfs_dfrag.c +++ b/fs/xfs/xfs_dfrag.c | |||
@@ -57,7 +57,7 @@ xfs_swapext( | |||
57 | xfs_inode_t *ip=NULL, *tip=NULL; | 57 | xfs_inode_t *ip=NULL, *tip=NULL; |
58 | xfs_mount_t *mp; | 58 | xfs_mount_t *mp; |
59 | struct file *fp = NULL, *tfp = NULL; | 59 | struct file *fp = NULL, *tfp = NULL; |
60 | vnode_t *vp, *tvp; | 60 | bhv_vnode_t *vp, *tvp; |
61 | int error = 0; | 61 | int error = 0; |
62 | 62 | ||
63 | sxp = kmem_alloc(sizeof(xfs_swapext_t), KM_MAYFAIL); | 63 | sxp = kmem_alloc(sizeof(xfs_swapext_t), KM_MAYFAIL); |
@@ -137,7 +137,7 @@ xfs_swap_extents( | |||
137 | xfs_inode_t *ips[2]; | 137 | xfs_inode_t *ips[2]; |
138 | xfs_trans_t *tp; | 138 | xfs_trans_t *tp; |
139 | xfs_bstat_t *sbp = &sxp->sx_stat; | 139 | xfs_bstat_t *sbp = &sxp->sx_stat; |
140 | vnode_t *vp, *tvp; | 140 | bhv_vnode_t *vp, *tvp; |
141 | xfs_ifork_t *tempifp, *ifp, *tifp; | 141 | xfs_ifork_t *tempifp, *ifp, *tifp; |
142 | int ilf_fields, tilf_fields; | 142 | int ilf_fields, tilf_fields; |
143 | static uint lock_flags = XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL; | 143 | static uint lock_flags = XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL; |
@@ -202,7 +202,7 @@ xfs_swap_extents( | |||
202 | 202 | ||
203 | if (VN_CACHED(tvp) != 0) { | 203 | if (VN_CACHED(tvp) != 0) { |
204 | xfs_inval_cached_trace(&tip->i_iocore, 0, -1, 0, -1); | 204 | xfs_inval_cached_trace(&tip->i_iocore, 0, -1, 0, -1); |
205 | VOP_FLUSHINVAL_PAGES(tvp, 0, -1, FI_REMAPF_LOCKED); | 205 | bhv_vop_flushinval_pages(tvp, 0, -1, FI_REMAPF_LOCKED); |
206 | } | 206 | } |
207 | 207 | ||
208 | /* Verify O_DIRECT for ftmp */ | 208 | /* Verify O_DIRECT for ftmp */ |
@@ -247,7 +247,7 @@ xfs_swap_extents( | |||
247 | /* We need to fail if the file is memory mapped. Once we have tossed | 247 | /* We need to fail if the file is memory mapped. Once we have tossed |
248 | * all existing pages, the page fault will have no option | 248 | * all existing pages, the page fault will have no option |
249 | * but to go to the filesystem for pages. By making the page fault call | 249 | * but to go to the filesystem for pages. By making the page fault call |
250 | * VOP_READ (or write in the case of autogrow) they block on the iolock | 250 | * vop_read (or write in the case of autogrow) they block on the iolock |
251 | * until we have switched the extents. | 251 | * until we have switched the extents. |
252 | */ | 252 | */ |
253 | if (VN_MAPPED(vp)) { | 253 | if (VN_MAPPED(vp)) { |
@@ -266,7 +266,7 @@ xfs_swap_extents( | |||
266 | * fields change. | 266 | * fields change. |
267 | */ | 267 | */ |
268 | 268 | ||
269 | VOP_TOSS_PAGES(vp, 0, -1, FI_REMAPF); | 269 | bhv_vop_toss_pages(vp, 0, -1, FI_REMAPF); |
270 | 270 | ||
271 | tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT); | 271 | tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT); |
272 | if ((error = xfs_trans_reserve(tp, 0, | 272 | if ((error = xfs_trans_reserve(tp, 0, |
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 41f38eb60ebc..da3c94c230db 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c | |||
@@ -186,7 +186,7 @@ xfs_ihash_promote( | |||
186 | */ | 186 | */ |
187 | STATIC int | 187 | STATIC int |
188 | xfs_iget_core( | 188 | xfs_iget_core( |
189 | vnode_t *vp, | 189 | bhv_vnode_t *vp, |
190 | xfs_mount_t *mp, | 190 | xfs_mount_t *mp, |
191 | xfs_trans_t *tp, | 191 | xfs_trans_t *tp, |
192 | xfs_ino_t ino, | 192 | xfs_ino_t ino, |
@@ -198,7 +198,7 @@ xfs_iget_core( | |||
198 | xfs_ihash_t *ih; | 198 | xfs_ihash_t *ih; |
199 | xfs_inode_t *ip; | 199 | xfs_inode_t *ip; |
200 | xfs_inode_t *iq; | 200 | xfs_inode_t *iq; |
201 | vnode_t *inode_vp; | 201 | bhv_vnode_t *inode_vp; |
202 | ulong version; | 202 | ulong version; |
203 | int error; | 203 | int error; |
204 | /* REFERENCED */ | 204 | /* REFERENCED */ |
@@ -489,7 +489,7 @@ xfs_iget( | |||
489 | xfs_daddr_t bno) | 489 | xfs_daddr_t bno) |
490 | { | 490 | { |
491 | struct inode *inode; | 491 | struct inode *inode; |
492 | vnode_t *vp = NULL; | 492 | bhv_vnode_t *vp = NULL; |
493 | int error; | 493 | int error; |
494 | 494 | ||
495 | XFS_STATS_INC(xs_ig_attempts); | 495 | XFS_STATS_INC(xs_ig_attempts); |
@@ -543,7 +543,7 @@ retry: | |||
543 | void | 543 | void |
544 | xfs_inode_lock_init( | 544 | xfs_inode_lock_init( |
545 | xfs_inode_t *ip, | 545 | xfs_inode_t *ip, |
546 | vnode_t *vp) | 546 | bhv_vnode_t *vp) |
547 | { | 547 | { |
548 | mrlock_init(&ip->i_lock, MRLOCK_ALLOW_EQUAL_PRI|MRLOCK_BARRIER, | 548 | mrlock_init(&ip->i_lock, MRLOCK_ALLOW_EQUAL_PRI|MRLOCK_BARRIER, |
549 | "xfsino", (long)vp->v_number); | 549 | "xfsino", (long)vp->v_number); |
@@ -603,12 +603,10 @@ void | |||
603 | xfs_iput(xfs_inode_t *ip, | 603 | xfs_iput(xfs_inode_t *ip, |
604 | uint lock_flags) | 604 | uint lock_flags) |
605 | { | 605 | { |
606 | vnode_t *vp = XFS_ITOV(ip); | 606 | bhv_vnode_t *vp = XFS_ITOV(ip); |
607 | 607 | ||
608 | vn_trace_entry(vp, "xfs_iput", (inst_t *)__return_address); | 608 | vn_trace_entry(vp, "xfs_iput", (inst_t *)__return_address); |
609 | |||
610 | xfs_iunlock(ip, lock_flags); | 609 | xfs_iunlock(ip, lock_flags); |
611 | |||
612 | VN_RELE(vp); | 610 | VN_RELE(vp); |
613 | } | 611 | } |
614 | 612 | ||
@@ -619,7 +617,7 @@ void | |||
619 | xfs_iput_new(xfs_inode_t *ip, | 617 | xfs_iput_new(xfs_inode_t *ip, |
620 | uint lock_flags) | 618 | uint lock_flags) |
621 | { | 619 | { |
622 | vnode_t *vp = XFS_ITOV(ip); | 620 | bhv_vnode_t *vp = XFS_ITOV(ip); |
623 | struct inode *inode = vn_to_inode(vp); | 621 | struct inode *inode = vn_to_inode(vp); |
624 | 622 | ||
625 | vn_trace_entry(vp, "xfs_iput_new", (inst_t *)__return_address); | 623 | vn_trace_entry(vp, "xfs_iput_new", (inst_t *)__return_address); |
@@ -645,7 +643,7 @@ xfs_iput_new(xfs_inode_t *ip, | |||
645 | void | 643 | void |
646 | xfs_ireclaim(xfs_inode_t *ip) | 644 | xfs_ireclaim(xfs_inode_t *ip) |
647 | { | 645 | { |
648 | vnode_t *vp; | 646 | bhv_vnode_t *vp; |
649 | 647 | ||
650 | /* | 648 | /* |
651 | * Remove from old hash list and mount list. | 649 | * Remove from old hash list and mount list. |
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 0ed707ed664b..848783ba5650 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c | |||
@@ -1086,7 +1086,7 @@ xfs_ialloc( | |||
1086 | { | 1086 | { |
1087 | xfs_ino_t ino; | 1087 | xfs_ino_t ino; |
1088 | xfs_inode_t *ip; | 1088 | xfs_inode_t *ip; |
1089 | vnode_t *vp; | 1089 | bhv_vnode_t *vp; |
1090 | uint flags; | 1090 | uint flags; |
1091 | int error; | 1091 | int error; |
1092 | 1092 | ||
@@ -1427,7 +1427,7 @@ xfs_itruncate_start( | |||
1427 | xfs_fsize_t last_byte; | 1427 | xfs_fsize_t last_byte; |
1428 | xfs_off_t toss_start; | 1428 | xfs_off_t toss_start; |
1429 | xfs_mount_t *mp; | 1429 | xfs_mount_t *mp; |
1430 | vnode_t *vp; | 1430 | bhv_vnode_t *vp; |
1431 | 1431 | ||
1432 | ASSERT(ismrlocked(&ip->i_iolock, MR_UPDATE) != 0); | 1432 | ASSERT(ismrlocked(&ip->i_iolock, MR_UPDATE) != 0); |
1433 | ASSERT((new_size == 0) || (new_size <= ip->i_d.di_size)); | 1433 | ASSERT((new_size == 0) || (new_size <= ip->i_d.di_size)); |
@@ -1440,9 +1440,9 @@ xfs_itruncate_start( | |||
1440 | vn_iowait(vp); /* wait for the completion of any pending DIOs */ | 1440 | vn_iowait(vp); /* wait for the completion of any pending DIOs */ |
1441 | 1441 | ||
1442 | /* | 1442 | /* |
1443 | * Call VOP_TOSS_PAGES() or VOP_FLUSHINVAL_PAGES() to get rid of pages and buffers | 1443 | * Call toss_pages or flushinval_pages to get rid of pages |
1444 | * overlapping the region being removed. We have to use | 1444 | * overlapping the region being removed. We have to use |
1445 | * the less efficient VOP_FLUSHINVAL_PAGES() in the case that the | 1445 | * the less efficient flushinval_pages in the case that the |
1446 | * caller may not be able to finish the truncate without | 1446 | * caller may not be able to finish the truncate without |
1447 | * dropping the inode's I/O lock. Make sure | 1447 | * dropping the inode's I/O lock. Make sure |
1448 | * to catch any pages brought in by buffers overlapping | 1448 | * to catch any pages brought in by buffers overlapping |
@@ -1451,10 +1451,10 @@ xfs_itruncate_start( | |||
1451 | * so that we don't toss things on the same block as | 1451 | * so that we don't toss things on the same block as |
1452 | * new_size but before it. | 1452 | * new_size but before it. |
1453 | * | 1453 | * |
1454 | * Before calling VOP_TOSS_PAGES() or VOP_FLUSHINVAL_PAGES(), make sure to | 1454 | * Before calling toss_page or flushinval_pages, make sure to |
1455 | * call remapf() over the same region if the file is mapped. | 1455 | * call remapf() over the same region if the file is mapped. |
1456 | * This frees up mapped file references to the pages in the | 1456 | * This frees up mapped file references to the pages in the |
1457 | * given range and for the VOP_FLUSHINVAL_PAGES() case it ensures | 1457 | * given range and for the flushinval_pages case it ensures |
1458 | * that we get the latest mapped changes flushed out. | 1458 | * that we get the latest mapped changes flushed out. |
1459 | */ | 1459 | */ |
1460 | toss_start = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); | 1460 | toss_start = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); |
@@ -1472,9 +1472,9 @@ xfs_itruncate_start( | |||
1472 | last_byte); | 1472 | last_byte); |
1473 | if (last_byte > toss_start) { | 1473 | if (last_byte > toss_start) { |
1474 | if (flags & XFS_ITRUNC_DEFINITE) { | 1474 | if (flags & XFS_ITRUNC_DEFINITE) { |
1475 | VOP_TOSS_PAGES(vp, toss_start, -1, FI_REMAPF_LOCKED); | 1475 | bhv_vop_toss_pages(vp, toss_start, -1, FI_REMAPF_LOCKED); |
1476 | } else { | 1476 | } else { |
1477 | VOP_FLUSHINVAL_PAGES(vp, toss_start, -1, FI_REMAPF_LOCKED); | 1477 | bhv_vop_flushinval_pages(vp, toss_start, -1, FI_REMAPF_LOCKED); |
1478 | } | 1478 | } |
1479 | } | 1479 | } |
1480 | 1480 | ||
@@ -2752,7 +2752,7 @@ xfs_iunpin( | |||
2752 | * the inode to become unpinned. | 2752 | * the inode to become unpinned. |
2753 | */ | 2753 | */ |
2754 | if (!(ip->i_flags & (XFS_IRECLAIM|XFS_IRECLAIMABLE))) { | 2754 | if (!(ip->i_flags & (XFS_IRECLAIM|XFS_IRECLAIMABLE))) { |
2755 | vnode_t *vp = XFS_ITOV_NULL(ip); | 2755 | bhv_vnode_t *vp = XFS_ITOV_NULL(ip); |
2756 | 2756 | ||
2757 | /* make sync come back and flush this inode */ | 2757 | /* make sync come back and flush this inode */ |
2758 | if (vp) { | 2758 | if (vp) { |
@@ -3512,7 +3512,7 @@ xfs_iflush_all( | |||
3512 | xfs_mount_t *mp) | 3512 | xfs_mount_t *mp) |
3513 | { | 3513 | { |
3514 | xfs_inode_t *ip; | 3514 | xfs_inode_t *ip; |
3515 | vnode_t *vp; | 3515 | bhv_vnode_t *vp; |
3516 | 3516 | ||
3517 | again: | 3517 | again: |
3518 | XFS_MOUNT_ILOCK(mp); | 3518 | XFS_MOUNT_ILOCK(mp); |
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 233668b748f7..d10b76ed1e5b 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h | |||
@@ -102,9 +102,9 @@ typedef struct xfs_ifork { | |||
102 | 102 | ||
103 | #ifdef __KERNEL__ | 103 | #ifdef __KERNEL__ |
104 | struct bhv_desc; | 104 | struct bhv_desc; |
105 | struct bhv_vnode; | ||
105 | struct cred; | 106 | struct cred; |
106 | struct ktrace; | 107 | struct ktrace; |
107 | struct vnode; | ||
108 | struct xfs_buf; | 108 | struct xfs_buf; |
109 | struct xfs_bmap_free; | 109 | struct xfs_bmap_free; |
110 | struct xfs_bmbt_irec; | 110 | struct xfs_bmbt_irec; |
@@ -400,7 +400,7 @@ void xfs_chash_init(struct xfs_mount *); | |||
400 | void xfs_chash_free(struct xfs_mount *); | 400 | void xfs_chash_free(struct xfs_mount *); |
401 | xfs_inode_t *xfs_inode_incore(struct xfs_mount *, xfs_ino_t, | 401 | xfs_inode_t *xfs_inode_incore(struct xfs_mount *, xfs_ino_t, |
402 | struct xfs_trans *); | 402 | struct xfs_trans *); |
403 | void xfs_inode_lock_init(xfs_inode_t *, struct vnode *); | 403 | void xfs_inode_lock_init(xfs_inode_t *, struct bhv_vnode *); |
404 | int xfs_iget(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, | 404 | int xfs_iget(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, |
405 | uint, uint, xfs_inode_t **, xfs_daddr_t); | 405 | uint, uint, xfs_inode_t **, xfs_daddr_t); |
406 | void xfs_iput(xfs_inode_t *, uint); | 406 | void xfs_iput(xfs_inode_t *, uint); |
@@ -461,7 +461,7 @@ void xfs_ichgtime(xfs_inode_t *, int); | |||
461 | xfs_fsize_t xfs_file_last_byte(xfs_inode_t *); | 461 | xfs_fsize_t xfs_file_last_byte(xfs_inode_t *); |
462 | void xfs_lock_inodes(xfs_inode_t **, int, int, uint); | 462 | void xfs_lock_inodes(xfs_inode_t **, int, int, uint); |
463 | 463 | ||
464 | xfs_inode_t *xfs_vtoi(struct vnode *vp); | 464 | xfs_inode_t *xfs_vtoi(struct bhv_vnode *vp); |
465 | 465 | ||
466 | void xfs_synchronize_atime(xfs_inode_t *); | 466 | void xfs_synchronize_atime(xfs_inode_t *); |
467 | 467 | ||
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index 864b43d65840..a0182ced29c4 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c | |||
@@ -51,7 +51,7 @@ xfs_bulkstat_one_iget( | |||
51 | { | 51 | { |
52 | xfs_dinode_core_t *dic; /* dinode core info pointer */ | 52 | xfs_dinode_core_t *dic; /* dinode core info pointer */ |
53 | xfs_inode_t *ip; /* incore inode pointer */ | 53 | xfs_inode_t *ip; /* incore inode pointer */ |
54 | vnode_t *vp; | 54 | bhv_vnode_t *vp; |
55 | int error; | 55 | int error; |
56 | 56 | ||
57 | error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_SHARED, &ip, bno); | 57 | error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_SHARED, &ip, bno); |
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 56c4b7e51f4d..5ce6416fbd33 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c | |||
@@ -658,7 +658,7 @@ xfs_mountfs( | |||
658 | xfs_buf_t *bp; | 658 | xfs_buf_t *bp; |
659 | xfs_sb_t *sbp = &(mp->m_sb); | 659 | xfs_sb_t *sbp = &(mp->m_sb); |
660 | xfs_inode_t *rip; | 660 | xfs_inode_t *rip; |
661 | vnode_t *rvp = NULL; | 661 | bhv_vnode_t *rvp = NULL; |
662 | int readio_log, writeio_log; | 662 | int readio_log, writeio_log; |
663 | xfs_daddr_t d; | 663 | xfs_daddr_t d; |
664 | __uint64_t ret64; | 664 | __uint64_t ret64; |
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 7e612255f530..a70999063696 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h | |||
@@ -54,7 +54,7 @@ typedef struct xfs_trans_reservations { | |||
54 | struct cred; | 54 | struct cred; |
55 | struct log; | 55 | struct log; |
56 | struct bhv_vfs; | 56 | struct bhv_vfs; |
57 | struct vnode; | 57 | struct bhv_vnode; |
58 | struct xfs_mount_args; | 58 | struct xfs_mount_args; |
59 | struct xfs_ihash; | 59 | struct xfs_ihash; |
60 | struct xfs_chash; | 60 | struct xfs_chash; |
@@ -67,7 +67,7 @@ struct xfs_extdelta; | |||
67 | struct xfs_swapext; | 67 | struct xfs_swapext; |
68 | 68 | ||
69 | extern struct bhv_vfsops xfs_vfsops; | 69 | extern struct bhv_vfsops xfs_vfsops; |
70 | extern struct vnodeops xfs_vnodeops; | 70 | extern struct bhv_vnodeops xfs_vnodeops; |
71 | 71 | ||
72 | #define AIL_LOCK_T lock_t | 72 | #define AIL_LOCK_T lock_t |
73 | #define AIL_LOCKINIT(x,y) spinlock_init(x,y) | 73 | #define AIL_LOCKINIT(x,y) spinlock_init(x,y) |
@@ -80,15 +80,15 @@ extern struct vnodeops xfs_vnodeops; | |||
80 | * Prototypes and functions for the Data Migration subsystem. | 80 | * Prototypes and functions for the Data Migration subsystem. |
81 | */ | 81 | */ |
82 | 82 | ||
83 | typedef int (*xfs_send_data_t)(int, struct vnode *, | 83 | typedef int (*xfs_send_data_t)(int, struct bhv_vnode *, |
84 | xfs_off_t, size_t, int, vrwlock_t *); | 84 | xfs_off_t, size_t, int, vrwlock_t *); |
85 | typedef int (*xfs_send_mmap_t)(struct vm_area_struct *, uint); | 85 | typedef int (*xfs_send_mmap_t)(struct vm_area_struct *, uint); |
86 | typedef int (*xfs_send_destroy_t)(struct vnode *, dm_right_t); | 86 | typedef int (*xfs_send_destroy_t)(struct bhv_vnode *, dm_right_t); |
87 | typedef int (*xfs_send_namesp_t)(dm_eventtype_t, struct bhv_vfs *, | 87 | typedef int (*xfs_send_namesp_t)(dm_eventtype_t, struct bhv_vfs *, |
88 | struct vnode *, | 88 | struct bhv_vnode *, |
89 | dm_right_t, struct vnode *, dm_right_t, | 89 | dm_right_t, struct bhv_vnode *, dm_right_t, |
90 | char *, char *, mode_t, int, int); | 90 | char *, char *, mode_t, int, int); |
91 | typedef void (*xfs_send_unmount_t)(struct bhv_vfs *, struct vnode *, | 91 | typedef void (*xfs_send_unmount_t)(struct bhv_vfs *, struct bhv_vnode *, |
92 | dm_right_t, mode_t, int, int); | 92 | dm_right_t, mode_t, int, int); |
93 | 93 | ||
94 | typedef struct xfs_dmops { | 94 | typedef struct xfs_dmops { |
diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c index 1f148762eb28..a20566b89121 100644 --- a/fs/xfs/xfs_rename.c +++ b/fs/xfs/xfs_rename.c | |||
@@ -226,7 +226,7 @@ int | |||
226 | xfs_rename( | 226 | xfs_rename( |
227 | bhv_desc_t *src_dir_bdp, | 227 | bhv_desc_t *src_dir_bdp, |
228 | vname_t *src_vname, | 228 | vname_t *src_vname, |
229 | vnode_t *target_dir_vp, | 229 | bhv_vnode_t *target_dir_vp, |
230 | vname_t *target_vname, | 230 | vname_t *target_vname, |
231 | cred_t *credp) | 231 | cred_t *credp) |
232 | { | 232 | { |
@@ -242,7 +242,7 @@ xfs_rename( | |||
242 | int committed; | 242 | int committed; |
243 | xfs_inode_t *inodes[4]; | 243 | xfs_inode_t *inodes[4]; |
244 | int target_ip_dropped = 0; /* dropped target_ip link? */ | 244 | int target_ip_dropped = 0; /* dropped target_ip link? */ |
245 | vnode_t *src_dir_vp; | 245 | bhv_vnode_t *src_dir_vp; |
246 | int spaceres; | 246 | int spaceres; |
247 | int target_link_zero = 0; | 247 | int target_link_zero = 0; |
248 | int num_inodes; | 248 | int num_inodes; |
@@ -609,7 +609,7 @@ xfs_rename( | |||
609 | * Let interposed file systems know about removed links. | 609 | * Let interposed file systems know about removed links. |
610 | */ | 610 | */ |
611 | if (target_ip_dropped) { | 611 | if (target_ip_dropped) { |
612 | VOP_LINK_REMOVED(XFS_ITOV(target_ip), target_dir_vp, | 612 | bhv_vop_link_removed(XFS_ITOV(target_ip), target_dir_vp, |
613 | target_link_zero); | 613 | target_link_zero); |
614 | IRELE(target_ip); | 614 | IRELE(target_ip); |
615 | } | 615 | } |
diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c index 34654ec6ae10..6ecc0ca58681 100644 --- a/fs/xfs/xfs_utils.c +++ b/fs/xfs/xfs_utils.c | |||
@@ -54,7 +54,7 @@ xfs_get_dir_entry( | |||
54 | vname_t *dentry, | 54 | vname_t *dentry, |
55 | xfs_inode_t **ipp) | 55 | xfs_inode_t **ipp) |
56 | { | 56 | { |
57 | vnode_t *vp; | 57 | bhv_vnode_t *vp; |
58 | 58 | ||
59 | vp = VNAME_TO_VNODE(dentry); | 59 | vp = VNAME_TO_VNODE(dentry); |
60 | 60 | ||
@@ -73,7 +73,7 @@ xfs_dir_lookup_int( | |||
73 | xfs_ino_t *inum, | 73 | xfs_ino_t *inum, |
74 | xfs_inode_t **ipp) | 74 | xfs_inode_t **ipp) |
75 | { | 75 | { |
76 | vnode_t *dir_vp; | 76 | bhv_vnode_t *dir_vp; |
77 | xfs_inode_t *dp; | 77 | xfs_inode_t *dp; |
78 | int error; | 78 | int error; |
79 | 79 | ||
diff --git a/fs/xfs/xfs_utils.h b/fs/xfs/xfs_utils.h index 472661a3b6d8..cecf1031059b 100644 --- a/fs/xfs/xfs_utils.h +++ b/fs/xfs/xfs_utils.h | |||
@@ -23,7 +23,8 @@ | |||
23 | #define ITRACE(ip) vn_trace_ref(XFS_ITOV(ip), __FILE__, __LINE__, \ | 23 | #define ITRACE(ip) vn_trace_ref(XFS_ITOV(ip), __FILE__, __LINE__, \ |
24 | (inst_t *)__return_address) | 24 | (inst_t *)__return_address) |
25 | 25 | ||
26 | extern int xfs_rename (bhv_desc_t *, vname_t *, vnode_t *, vname_t *, cred_t *); | 26 | extern int xfs_rename (bhv_desc_t *, vname_t *, bhv_vnode_t *, |
27 | vname_t *, cred_t *); | ||
27 | extern int xfs_get_dir_entry (vname_t *, xfs_inode_t **); | 28 | extern int xfs_get_dir_entry (vname_t *, xfs_inode_t **); |
28 | extern int xfs_dir_lookup_int (bhv_desc_t *, uint, vname_t *, xfs_ino_t *, | 29 | extern int xfs_dir_lookup_int (bhv_desc_t *, uint, vname_t *, xfs_ino_t *, |
29 | xfs_inode_t **); | 30 | xfs_inode_t **); |
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index 57ee2bebd248..d3f270a62c9f 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c | |||
@@ -555,7 +555,7 @@ xfs_unmount( | |||
555 | bhv_vfs_t *vfsp = bhvtovfs(bdp); | 555 | bhv_vfs_t *vfsp = bhvtovfs(bdp); |
556 | xfs_mount_t *mp = XFS_BHVTOM(bdp); | 556 | xfs_mount_t *mp = XFS_BHVTOM(bdp); |
557 | xfs_inode_t *rip; | 557 | xfs_inode_t *rip; |
558 | vnode_t *rvp; | 558 | bhv_vnode_t *rvp; |
559 | int unmount_event_wanted = 0; | 559 | int unmount_event_wanted = 0; |
560 | int unmount_event_flags = 0; | 560 | int unmount_event_flags = 0; |
561 | int xfs_unmountfs_needed = 0; | 561 | int xfs_unmountfs_needed = 0; |
@@ -701,7 +701,7 @@ xfs_unmount_flush( | |||
701 | xfs_inode_t *rip = mp->m_rootip; | 701 | xfs_inode_t *rip = mp->m_rootip; |
702 | xfs_inode_t *rbmip; | 702 | xfs_inode_t *rbmip; |
703 | xfs_inode_t *rsumip = NULL; | 703 | xfs_inode_t *rsumip = NULL; |
704 | vnode_t *rvp = XFS_ITOV(rip); | 704 | bhv_vnode_t *rvp = XFS_ITOV(rip); |
705 | int error; | 705 | int error; |
706 | 706 | ||
707 | xfs_ilock(rip, XFS_ILOCK_EXCL); | 707 | xfs_ilock(rip, XFS_ILOCK_EXCL); |
@@ -780,9 +780,9 @@ fscorrupt_out2: | |||
780 | STATIC int | 780 | STATIC int |
781 | xfs_root( | 781 | xfs_root( |
782 | bhv_desc_t *bdp, | 782 | bhv_desc_t *bdp, |
783 | vnode_t **vpp) | 783 | bhv_vnode_t **vpp) |
784 | { | 784 | { |
785 | vnode_t *vp; | 785 | bhv_vnode_t *vp; |
786 | 786 | ||
787 | vp = XFS_ITOV((XFS_BHVTOM(bdp))->m_rootip); | 787 | vp = XFS_ITOV((XFS_BHVTOM(bdp))->m_rootip); |
788 | VN_HOLD(vp); | 788 | VN_HOLD(vp); |
@@ -801,7 +801,7 @@ STATIC int | |||
801 | xfs_statvfs( | 801 | xfs_statvfs( |
802 | bhv_desc_t *bdp, | 802 | bhv_desc_t *bdp, |
803 | xfs_statfs_t *statp, | 803 | xfs_statfs_t *statp, |
804 | vnode_t *vp) | 804 | bhv_vnode_t *vp) |
805 | { | 805 | { |
806 | __uint64_t fakeinos; | 806 | __uint64_t fakeinos; |
807 | xfs_extlen_t lsize; | 807 | xfs_extlen_t lsize; |
@@ -916,7 +916,7 @@ xfs_sync_inodes( | |||
916 | xfs_inode_t *ip = NULL; | 916 | xfs_inode_t *ip = NULL; |
917 | xfs_inode_t *ip_next; | 917 | xfs_inode_t *ip_next; |
918 | xfs_buf_t *bp; | 918 | xfs_buf_t *bp; |
919 | vnode_t *vp = NULL; | 919 | bhv_vnode_t *vp = NULL; |
920 | int error; | 920 | int error; |
921 | int last_error; | 921 | int last_error; |
922 | uint64_t fflag; | 922 | uint64_t fflag; |
@@ -1155,9 +1155,9 @@ xfs_sync_inodes( | |||
1155 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | 1155 | xfs_iunlock(ip, XFS_ILOCK_SHARED); |
1156 | 1156 | ||
1157 | if (XFS_FORCED_SHUTDOWN(mp)) { | 1157 | if (XFS_FORCED_SHUTDOWN(mp)) { |
1158 | VOP_TOSS_PAGES(vp, 0, -1, FI_REMAPF); | 1158 | bhv_vop_toss_pages(vp, 0, -1, FI_REMAPF); |
1159 | } else { | 1159 | } else { |
1160 | VOP_FLUSHINVAL_PAGES(vp, 0, -1, FI_REMAPF); | 1160 | bhv_vop_flushinval_pages(vp, 0, -1, FI_REMAPF); |
1161 | } | 1161 | } |
1162 | 1162 | ||
1163 | xfs_ilock(ip, XFS_ILOCK_SHARED); | 1163 | xfs_ilock(ip, XFS_ILOCK_SHARED); |
@@ -1177,8 +1177,8 @@ xfs_sync_inodes( | |||
1177 | * across calls to the buffer cache. | 1177 | * across calls to the buffer cache. |
1178 | */ | 1178 | */ |
1179 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | 1179 | xfs_iunlock(ip, XFS_ILOCK_SHARED); |
1180 | VOP_FLUSH_PAGES(vp, (xfs_off_t)0, -1, | 1180 | error = bhv_vop_flush_pages(vp, (xfs_off_t)0, |
1181 | fflag, FI_NONE, error); | 1181 | -1, fflag, FI_NONE); |
1182 | xfs_ilock(ip, XFS_ILOCK_SHARED); | 1182 | xfs_ilock(ip, XFS_ILOCK_SHARED); |
1183 | } | 1183 | } |
1184 | 1184 | ||
@@ -1230,9 +1230,7 @@ xfs_sync_inodes( | |||
1230 | * marker and free it. | 1230 | * marker and free it. |
1231 | */ | 1231 | */ |
1232 | XFS_MOUNT_ILOCK(mp); | 1232 | XFS_MOUNT_ILOCK(mp); |
1233 | |||
1234 | IPOINTER_REMOVE(ip, mp); | 1233 | IPOINTER_REMOVE(ip, mp); |
1235 | |||
1236 | XFS_MOUNT_IUNLOCK(mp); | 1234 | XFS_MOUNT_IUNLOCK(mp); |
1237 | 1235 | ||
1238 | ASSERT(!(lock_flags & | 1236 | ASSERT(!(lock_flags & |
@@ -1573,7 +1571,7 @@ xfs_syncsub( | |||
1573 | STATIC int | 1571 | STATIC int |
1574 | xfs_vget( | 1572 | xfs_vget( |
1575 | bhv_desc_t *bdp, | 1573 | bhv_desc_t *bdp, |
1576 | vnode_t **vpp, | 1574 | bhv_vnode_t **vpp, |
1577 | fid_t *fidp) | 1575 | fid_t *fidp) |
1578 | { | 1576 | { |
1579 | xfs_mount_t *mp = XFS_BHVTOM(bdp); | 1577 | xfs_mount_t *mp = XFS_BHVTOM(bdp); |
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 35906bae92e1..f3c2deeed0a3 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
@@ -62,7 +62,7 @@ xfs_open( | |||
62 | cred_t *credp) | 62 | cred_t *credp) |
63 | { | 63 | { |
64 | int mode; | 64 | int mode; |
65 | vnode_t *vp = BHV_TO_VNODE(bdp); | 65 | bhv_vnode_t *vp = BHV_TO_VNODE(bdp); |
66 | xfs_inode_t *ip = XFS_BHVTOI(bdp); | 66 | xfs_inode_t *ip = XFS_BHVTOI(bdp); |
67 | 67 | ||
68 | if (XFS_FORCED_SHUTDOWN(ip->i_mount)) | 68 | if (XFS_FORCED_SHUTDOWN(ip->i_mount)) |
@@ -88,9 +88,8 @@ xfs_close( | |||
88 | lastclose_t lastclose, | 88 | lastclose_t lastclose, |
89 | cred_t *credp) | 89 | cred_t *credp) |
90 | { | 90 | { |
91 | vnode_t *vp = BHV_TO_VNODE(bdp); | 91 | bhv_vnode_t *vp = BHV_TO_VNODE(bdp); |
92 | xfs_inode_t *ip = XFS_BHVTOI(bdp); | 92 | xfs_inode_t *ip = XFS_BHVTOI(bdp); |
93 | int error = 0; | ||
94 | 93 | ||
95 | if (XFS_FORCED_SHUTDOWN(ip->i_mount)) | 94 | if (XFS_FORCED_SHUTDOWN(ip->i_mount)) |
96 | return XFS_ERROR(EIO); | 95 | return XFS_ERROR(EIO); |
@@ -108,8 +107,8 @@ xfs_close( | |||
108 | * window where we'd otherwise be exposed to that problem. | 107 | * window where we'd otherwise be exposed to that problem. |
109 | */ | 108 | */ |
110 | if (VUNTRUNCATE(vp) && VN_DIRTY(vp) && ip->i_delayed_blks > 0) | 109 | if (VUNTRUNCATE(vp) && VN_DIRTY(vp) && ip->i_delayed_blks > 0) |
111 | VOP_FLUSH_PAGES(vp, 0, -1, XFS_B_ASYNC, FI_NONE, error); | 110 | return bhv_vop_flush_pages(vp, 0, -1, XFS_B_ASYNC, FI_NONE); |
112 | return error; | 111 | return 0; |
113 | } | 112 | } |
114 | 113 | ||
115 | /* | 114 | /* |
@@ -124,7 +123,7 @@ xfs_getattr( | |||
124 | { | 123 | { |
125 | xfs_inode_t *ip; | 124 | xfs_inode_t *ip; |
126 | xfs_mount_t *mp; | 125 | xfs_mount_t *mp; |
127 | vnode_t *vp; | 126 | bhv_vnode_t *vp; |
128 | 127 | ||
129 | vp = BHV_TO_VNODE(bdp); | 128 | vp = BHV_TO_VNODE(bdp); |
130 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); | 129 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); |
@@ -265,7 +264,7 @@ xfs_setattr( | |||
265 | uid_t uid=0, iuid=0; | 264 | uid_t uid=0, iuid=0; |
266 | gid_t gid=0, igid=0; | 265 | gid_t gid=0, igid=0; |
267 | int timeflags = 0; | 266 | int timeflags = 0; |
268 | vnode_t *vp; | 267 | bhv_vnode_t *vp; |
269 | xfs_prid_t projid=0, iprojid=0; | 268 | xfs_prid_t projid=0, iprojid=0; |
270 | int mandlock_before, mandlock_after; | 269 | int mandlock_before, mandlock_after; |
271 | struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; | 270 | struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; |
@@ -888,7 +887,7 @@ xfs_setattr( | |||
888 | */ | 887 | */ |
889 | mandlock_after = MANDLOCK(vp, ip->i_d.di_mode); | 888 | mandlock_after = MANDLOCK(vp, ip->i_d.di_mode); |
890 | if (mandlock_before != mandlock_after) { | 889 | if (mandlock_before != mandlock_after) { |
891 | VOP_VNODE_CHANGE(vp, VCHANGE_FLAGS_ENF_LOCKING, | 890 | bhv_vop_vnode_change(vp, VCHANGE_FLAGS_ENF_LOCKING, |
892 | mandlock_after); | 891 | mandlock_after); |
893 | } | 892 | } |
894 | 893 | ||
@@ -976,7 +975,7 @@ xfs_readlink( | |||
976 | int count; | 975 | int count; |
977 | xfs_off_t offset; | 976 | xfs_off_t offset; |
978 | int pathlen; | 977 | int pathlen; |
979 | vnode_t *vp; | 978 | bhv_vnode_t *vp; |
980 | int error = 0; | 979 | int error = 0; |
981 | xfs_mount_t *mp; | 980 | xfs_mount_t *mp; |
982 | int nmaps; | 981 | int nmaps; |
@@ -1547,7 +1546,7 @@ xfs_release( | |||
1547 | bhv_desc_t *bdp) | 1546 | bhv_desc_t *bdp) |
1548 | { | 1547 | { |
1549 | xfs_inode_t *ip; | 1548 | xfs_inode_t *ip; |
1550 | vnode_t *vp; | 1549 | bhv_vnode_t *vp; |
1551 | xfs_mount_t *mp; | 1550 | xfs_mount_t *mp; |
1552 | int error; | 1551 | int error; |
1553 | 1552 | ||
@@ -1600,8 +1599,8 @@ xfs_inactive( | |||
1600 | cred_t *credp) | 1599 | cred_t *credp) |
1601 | { | 1600 | { |
1602 | xfs_inode_t *ip; | 1601 | xfs_inode_t *ip; |
1603 | vnode_t *vp; | 1602 | bhv_vnode_t *vp; |
1604 | xfs_bmap_free_t free_list; | 1603 | xfs_bmap_free_t free_list; |
1605 | xfs_fsblock_t first_block; | 1604 | xfs_fsblock_t first_block; |
1606 | int committed; | 1605 | int committed; |
1607 | xfs_trans_t *tp; | 1606 | xfs_trans_t *tp; |
@@ -1817,16 +1816,16 @@ STATIC int | |||
1817 | xfs_lookup( | 1816 | xfs_lookup( |
1818 | bhv_desc_t *dir_bdp, | 1817 | bhv_desc_t *dir_bdp, |
1819 | vname_t *dentry, | 1818 | vname_t *dentry, |
1820 | vnode_t **vpp, | 1819 | bhv_vnode_t **vpp, |
1821 | int flags, | 1820 | int flags, |
1822 | vnode_t *rdir, | 1821 | bhv_vnode_t *rdir, |
1823 | cred_t *credp) | 1822 | cred_t *credp) |
1824 | { | 1823 | { |
1825 | xfs_inode_t *dp, *ip; | 1824 | xfs_inode_t *dp, *ip; |
1826 | xfs_ino_t e_inum; | 1825 | xfs_ino_t e_inum; |
1827 | int error; | 1826 | int error; |
1828 | uint lock_mode; | 1827 | uint lock_mode; |
1829 | vnode_t *dir_vp; | 1828 | bhv_vnode_t *dir_vp; |
1830 | 1829 | ||
1831 | dir_vp = BHV_TO_VNODE(dir_bdp); | 1830 | dir_vp = BHV_TO_VNODE(dir_bdp); |
1832 | vn_trace_entry(dir_vp, __FUNCTION__, (inst_t *)__return_address); | 1831 | vn_trace_entry(dir_vp, __FUNCTION__, (inst_t *)__return_address); |
@@ -1855,13 +1854,13 @@ xfs_create( | |||
1855 | bhv_desc_t *dir_bdp, | 1854 | bhv_desc_t *dir_bdp, |
1856 | vname_t *dentry, | 1855 | vname_t *dentry, |
1857 | vattr_t *vap, | 1856 | vattr_t *vap, |
1858 | vnode_t **vpp, | 1857 | bhv_vnode_t **vpp, |
1859 | cred_t *credp) | 1858 | cred_t *credp) |
1860 | { | 1859 | { |
1861 | char *name = VNAME(dentry); | 1860 | char *name = VNAME(dentry); |
1862 | vnode_t *dir_vp; | 1861 | bhv_vnode_t *dir_vp; |
1863 | xfs_inode_t *dp, *ip; | 1862 | xfs_inode_t *dp, *ip; |
1864 | vnode_t *vp=NULL; | 1863 | bhv_vnode_t *vp = NULL; |
1865 | xfs_trans_t *tp; | 1864 | xfs_trans_t *tp; |
1866 | xfs_mount_t *mp; | 1865 | xfs_mount_t *mp; |
1867 | xfs_dev_t rdev; | 1866 | xfs_dev_t rdev; |
@@ -2047,7 +2046,7 @@ xfs_create( | |||
2047 | * Propagate the fact that the vnode changed after the | 2046 | * Propagate the fact that the vnode changed after the |
2048 | * xfs_inode locks have been released. | 2047 | * xfs_inode locks have been released. |
2049 | */ | 2048 | */ |
2050 | VOP_VNODE_CHANGE(vp, VCHANGE_FLAGS_TRUNCATED, 3); | 2049 | bhv_vop_vnode_change(vp, VCHANGE_FLAGS_TRUNCATED, 3); |
2051 | 2050 | ||
2052 | *vpp = vp; | 2051 | *vpp = vp; |
2053 | 2052 | ||
@@ -2345,7 +2344,7 @@ xfs_remove( | |||
2345 | vname_t *dentry, | 2344 | vname_t *dentry, |
2346 | cred_t *credp) | 2345 | cred_t *credp) |
2347 | { | 2346 | { |
2348 | vnode_t *dir_vp; | 2347 | bhv_vnode_t *dir_vp; |
2349 | char *name = VNAME(dentry); | 2348 | char *name = VNAME(dentry); |
2350 | xfs_inode_t *dp, *ip; | 2349 | xfs_inode_t *dp, *ip; |
2351 | xfs_trans_t *tp = NULL; | 2350 | xfs_trans_t *tp = NULL; |
@@ -2532,7 +2531,7 @@ xfs_remove( | |||
2532 | /* | 2531 | /* |
2533 | * Let interposed file systems know about removed links. | 2532 | * Let interposed file systems know about removed links. |
2534 | */ | 2533 | */ |
2535 | VOP_LINK_REMOVED(XFS_ITOV(ip), dir_vp, link_zero); | 2534 | bhv_vop_link_removed(XFS_ITOV(ip), dir_vp, link_zero); |
2536 | 2535 | ||
2537 | IRELE(ip); | 2536 | IRELE(ip); |
2538 | 2537 | ||
@@ -2585,7 +2584,7 @@ xfs_remove( | |||
2585 | STATIC int | 2584 | STATIC int |
2586 | xfs_link( | 2585 | xfs_link( |
2587 | bhv_desc_t *target_dir_bdp, | 2586 | bhv_desc_t *target_dir_bdp, |
2588 | vnode_t *src_vp, | 2587 | bhv_vnode_t *src_vp, |
2589 | vname_t *dentry, | 2588 | vname_t *dentry, |
2590 | cred_t *credp) | 2589 | cred_t *credp) |
2591 | { | 2590 | { |
@@ -2598,7 +2597,7 @@ xfs_link( | |||
2598 | xfs_fsblock_t first_block; | 2597 | xfs_fsblock_t first_block; |
2599 | int cancel_flags; | 2598 | int cancel_flags; |
2600 | int committed; | 2599 | int committed; |
2601 | vnode_t *target_dir_vp; | 2600 | bhv_vnode_t *target_dir_vp; |
2602 | int resblks; | 2601 | int resblks; |
2603 | char *target_name = VNAME(dentry); | 2602 | char *target_name = VNAME(dentry); |
2604 | int target_namelen; | 2603 | int target_namelen; |
@@ -2757,13 +2756,13 @@ xfs_mkdir( | |||
2757 | bhv_desc_t *dir_bdp, | 2756 | bhv_desc_t *dir_bdp, |
2758 | vname_t *dentry, | 2757 | vname_t *dentry, |
2759 | vattr_t *vap, | 2758 | vattr_t *vap, |
2760 | vnode_t **vpp, | 2759 | bhv_vnode_t **vpp, |
2761 | cred_t *credp) | 2760 | cred_t *credp) |
2762 | { | 2761 | { |
2763 | char *dir_name = VNAME(dentry); | 2762 | char *dir_name = VNAME(dentry); |
2764 | xfs_inode_t *dp; | 2763 | xfs_inode_t *dp; |
2765 | xfs_inode_t *cdp; /* inode of created dir */ | 2764 | xfs_inode_t *cdp; /* inode of created dir */ |
2766 | vnode_t *cvp; /* vnode of created dir */ | 2765 | bhv_vnode_t *cvp; /* vnode of created dir */ |
2767 | xfs_trans_t *tp; | 2766 | xfs_trans_t *tp; |
2768 | xfs_mount_t *mp; | 2767 | xfs_mount_t *mp; |
2769 | int cancel_flags; | 2768 | int cancel_flags; |
@@ -2771,7 +2770,7 @@ xfs_mkdir( | |||
2771 | int committed; | 2770 | int committed; |
2772 | xfs_bmap_free_t free_list; | 2771 | xfs_bmap_free_t free_list; |
2773 | xfs_fsblock_t first_block; | 2772 | xfs_fsblock_t first_block; |
2774 | vnode_t *dir_vp; | 2773 | bhv_vnode_t *dir_vp; |
2775 | boolean_t dp_joined_to_trans; | 2774 | boolean_t dp_joined_to_trans; |
2776 | boolean_t created = B_FALSE; | 2775 | boolean_t created = B_FALSE; |
2777 | int dm_event_sent = 0; | 2776 | int dm_event_sent = 0; |
@@ -3003,7 +3002,7 @@ xfs_rmdir( | |||
3003 | xfs_fsblock_t first_block; | 3002 | xfs_fsblock_t first_block; |
3004 | int cancel_flags; | 3003 | int cancel_flags; |
3005 | int committed; | 3004 | int committed; |
3006 | vnode_t *dir_vp; | 3005 | bhv_vnode_t *dir_vp; |
3007 | int dm_di_mode = 0; | 3006 | int dm_di_mode = 0; |
3008 | int last_cdp_link; | 3007 | int last_cdp_link; |
3009 | int namelen; | 3008 | int namelen; |
@@ -3202,7 +3201,7 @@ xfs_rmdir( | |||
3202 | /* | 3201 | /* |
3203 | * Let interposed file systems know about removed links. | 3202 | * Let interposed file systems know about removed links. |
3204 | */ | 3203 | */ |
3205 | VOP_LINK_REMOVED(XFS_ITOV(cdp), dir_vp, last_cdp_link); | 3204 | bhv_vop_link_removed(XFS_ITOV(cdp), dir_vp, last_cdp_link); |
3206 | 3205 | ||
3207 | IRELE(cdp); | 3206 | IRELE(cdp); |
3208 | 3207 | ||
@@ -3272,7 +3271,7 @@ xfs_symlink( | |||
3272 | vname_t *dentry, | 3271 | vname_t *dentry, |
3273 | vattr_t *vap, | 3272 | vattr_t *vap, |
3274 | char *target_path, | 3273 | char *target_path, |
3275 | vnode_t **vpp, | 3274 | bhv_vnode_t **vpp, |
3276 | cred_t *credp) | 3275 | cred_t *credp) |
3277 | { | 3276 | { |
3278 | xfs_trans_t *tp; | 3277 | xfs_trans_t *tp; |
@@ -3284,7 +3283,7 @@ xfs_symlink( | |||
3284 | xfs_bmap_free_t free_list; | 3283 | xfs_bmap_free_t free_list; |
3285 | xfs_fsblock_t first_block; | 3284 | xfs_fsblock_t first_block; |
3286 | boolean_t dp_joined_to_trans; | 3285 | boolean_t dp_joined_to_trans; |
3287 | vnode_t *dir_vp; | 3286 | bhv_vnode_t *dir_vp; |
3288 | uint cancel_flags; | 3287 | uint cancel_flags; |
3289 | int committed; | 3288 | int committed; |
3290 | xfs_fileoff_t first_fsb; | 3289 | xfs_fileoff_t first_fsb; |
@@ -3562,7 +3561,7 @@ std_return: | |||
3562 | } | 3561 | } |
3563 | 3562 | ||
3564 | if (!error) { | 3563 | if (!error) { |
3565 | vnode_t *vp; | 3564 | bhv_vnode_t *vp; |
3566 | 3565 | ||
3567 | ASSERT(ip); | 3566 | ASSERT(ip); |
3568 | vp = XFS_ITOV(ip); | 3567 | vp = XFS_ITOV(ip); |
@@ -3630,7 +3629,7 @@ xfs_rwlock( | |||
3630 | vrwlock_t locktype) | 3629 | vrwlock_t locktype) |
3631 | { | 3630 | { |
3632 | xfs_inode_t *ip; | 3631 | xfs_inode_t *ip; |
3633 | vnode_t *vp; | 3632 | bhv_vnode_t *vp; |
3634 | 3633 | ||
3635 | vp = BHV_TO_VNODE(bdp); | 3634 | vp = BHV_TO_VNODE(bdp); |
3636 | if (VN_ISDIR(vp)) | 3635 | if (VN_ISDIR(vp)) |
@@ -3661,7 +3660,7 @@ xfs_rwunlock( | |||
3661 | vrwlock_t locktype) | 3660 | vrwlock_t locktype) |
3662 | { | 3661 | { |
3663 | xfs_inode_t *ip; | 3662 | xfs_inode_t *ip; |
3664 | vnode_t *vp; | 3663 | bhv_vnode_t *vp; |
3665 | 3664 | ||
3666 | vp = BHV_TO_VNODE(bdp); | 3665 | vp = BHV_TO_VNODE(bdp); |
3667 | if (VN_ISDIR(vp)) | 3666 | if (VN_ISDIR(vp)) |
@@ -3810,7 +3809,7 @@ xfs_reclaim( | |||
3810 | bhv_desc_t *bdp) | 3809 | bhv_desc_t *bdp) |
3811 | { | 3810 | { |
3812 | xfs_inode_t *ip; | 3811 | xfs_inode_t *ip; |
3813 | vnode_t *vp; | 3812 | bhv_vnode_t *vp; |
3814 | 3813 | ||
3815 | vp = BHV_TO_VNODE(bdp); | 3814 | vp = BHV_TO_VNODE(bdp); |
3816 | ip = XFS_BHVTOI(bdp); | 3815 | ip = XFS_BHVTOI(bdp); |
@@ -3865,7 +3864,7 @@ xfs_finish_reclaim( | |||
3865 | int sync_mode) | 3864 | int sync_mode) |
3866 | { | 3865 | { |
3867 | xfs_ihash_t *ih = ip->i_hash; | 3866 | xfs_ihash_t *ih = ip->i_hash; |
3868 | vnode_t *vp = XFS_ITOV_NULL(ip); | 3867 | bhv_vnode_t *vp = XFS_ITOV_NULL(ip); |
3869 | int error; | 3868 | int error; |
3870 | 3869 | ||
3871 | if (vp && VN_BAD(vp)) | 3870 | if (vp && VN_BAD(vp)) |
@@ -4275,7 +4274,7 @@ xfs_free_file_space( | |||
4275 | xfs_off_t len, | 4274 | xfs_off_t len, |
4276 | int attr_flags) | 4275 | int attr_flags) |
4277 | { | 4276 | { |
4278 | vnode_t *vp; | 4277 | bhv_vnode_t *vp; |
4279 | int committed; | 4278 | int committed; |
4280 | int done; | 4279 | int done; |
4281 | xfs_off_t end_dmi_offset; | 4280 | xfs_off_t end_dmi_offset; |
@@ -4341,7 +4340,7 @@ xfs_free_file_space( | |||
4341 | if (VN_CACHED(vp) != 0) { | 4340 | if (VN_CACHED(vp) != 0) { |
4342 | xfs_inval_cached_trace(&ip->i_iocore, ioffset, -1, | 4341 | xfs_inval_cached_trace(&ip->i_iocore, ioffset, -1, |
4343 | ctooff(offtoct(ioffset)), -1); | 4342 | ctooff(offtoct(ioffset)), -1); |
4344 | VOP_FLUSHINVAL_PAGES(vp, ctooff(offtoct(ioffset)), | 4343 | bhv_vop_flushinval_pages(vp, ctooff(offtoct(ioffset)), |
4345 | -1, FI_REMAPF_LOCKED); | 4344 | -1, FI_REMAPF_LOCKED); |
4346 | } | 4345 | } |
4347 | 4346 | ||
@@ -4504,7 +4503,7 @@ xfs_change_file_space( | |||
4504 | xfs_off_t llen; | 4503 | xfs_off_t llen; |
4505 | xfs_trans_t *tp; | 4504 | xfs_trans_t *tp; |
4506 | vattr_t va; | 4505 | vattr_t va; |
4507 | vnode_t *vp; | 4506 | bhv_vnode_t *vp; |
4508 | 4507 | ||
4509 | vp = BHV_TO_VNODE(bdp); | 4508 | vp = BHV_TO_VNODE(bdp); |
4510 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); | 4509 | vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address); |
@@ -4657,7 +4656,7 @@ xfs_change_file_space( | |||
4657 | return error; | 4656 | return error; |
4658 | } | 4657 | } |
4659 | 4658 | ||
4660 | vnodeops_t xfs_vnodeops = { | 4659 | bhv_vnodeops_t xfs_vnodeops = { |
4661 | BHV_IDENTITY_INIT(VN_BHV_XFS,VNODE_POSITION_XFS), | 4660 | BHV_IDENTITY_INIT(VN_BHV_XFS,VNODE_POSITION_XFS), |
4662 | .vop_open = xfs_open, | 4661 | .vop_open = xfs_open, |
4663 | .vop_close = xfs_close, | 4662 | .vop_close = xfs_close, |