aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_file.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2007-08-28 21:44:18 -0400
committerTim Shimmin <tes@chook.melbourne.sgi.com>2007-10-15 21:23:43 -0400
commit2f6f7b3d9b5600e1f6e7622c62ab30f36bd0f57f (patch)
tree06fe541eb0b90227a8a433d8e3cf66d621df7038 /fs/xfs/linux-2.6/xfs_file.c
parent739bfb2a7dfa369324f74aad1d020d6e0775e4f0 (diff)
[XFS] kill v_vfsp member from struct bhv_vnode
We can easily get at the vfsp through the super_block but it will soon be gone anyway. SGI-PV: 969608 SGI-Modid: xfs-linux-melb:xfs-kern:29494a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_file.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_file.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c
index 83707708ebb1..1d72dbb1a73d 100644
--- a/fs/xfs/linux-2.6/xfs_file.c
+++ b/fs/xfs/linux-2.6/xfs_file.c
@@ -261,7 +261,7 @@ xfs_file_mmap(
261 vma->vm_flags |= VM_CAN_NONLINEAR; 261 vma->vm_flags |= VM_CAN_NONLINEAR;
262 262
263#ifdef CONFIG_XFS_DMAPI 263#ifdef CONFIG_XFS_DMAPI
264 if (vn_from_inode(filp->f_path.dentry->d_inode)->v_vfsp->vfs_flag & VFS_DMI) 264 if (vfs_from_sb(filp->f_path.dentry->d_inode->i_sb)->vfs_flag & VFS_DMI)
265 vma->vm_ops = &xfs_dmapi_file_vm_ops; 265 vma->vm_ops = &xfs_dmapi_file_vm_ops;
266#endif /* CONFIG_XFS_DMAPI */ 266#endif /* CONFIG_XFS_DMAPI */
267 267
@@ -320,16 +320,14 @@ xfs_vm_mprotect(
320 struct vm_area_struct *vma, 320 struct vm_area_struct *vma,
321 unsigned int newflags) 321 unsigned int newflags)
322{ 322{
323 bhv_vnode_t *vp = vn_from_inode(vma->vm_file->f_path.dentry->d_inode); 323 struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
324 bhv_vfs_t *vfsp = vfs_from_sb(inode->i_sb);
324 int error = 0; 325 int error = 0;
325 326
326 if (vp->v_vfsp->vfs_flag & VFS_DMI) { 327 if (vfsp->vfs_flag & VFS_DMI) {
327 if ((vma->vm_flags & VM_MAYSHARE) && 328 if ((vma->vm_flags & VM_MAYSHARE) &&
328 (newflags & VM_WRITE) && !(vma->vm_flags & VM_WRITE)) { 329 (newflags & VM_WRITE) && !(vma->vm_flags & VM_WRITE))
329 xfs_mount_t *mp = XFS_VFSTOM(vp->v_vfsp); 330 error = XFS_SEND_MMAP(XFS_VFSTOM(vfsp), vma, VM_WRITE);
330
331 error = XFS_SEND_MMAP(mp, vma, VM_WRITE);
332 }
333 } 331 }
334 return error; 332 return error;
335} 333}
@@ -346,18 +344,17 @@ STATIC int
346xfs_file_open_exec( 344xfs_file_open_exec(
347 struct inode *inode) 345 struct inode *inode)
348{ 346{
349 bhv_vnode_t *vp = vn_from_inode(inode); 347 bhv_vfs_t *vfsp = vfs_from_sb(inode->i_sb);
350 348
351 if (unlikely(vp->v_vfsp->vfs_flag & VFS_DMI)) { 349 if (unlikely(vfsp->vfs_flag & VFS_DMI)) {
352 xfs_mount_t *mp = XFS_VFSTOM(vp->v_vfsp); 350 if (DM_EVENT_ENABLED(XFS_I(inode), DM_EVENT_READ)) {
353 xfs_inode_t *ip = xfs_vtoi(vp); 351 bhv_vnode_t *vp = vn_from_inode(inode);
354 352
355 if (!ip) 353 return -XFS_SEND_DATA(XFS_VFSTOM(vfsp), DM_EVENT_READ,
356 return -EINVAL; 354 vp, 0, 0, 0, NULL);
357 if (DM_EVENT_ENABLED(ip, DM_EVENT_READ)) 355 }
358 return -XFS_SEND_DATA(mp, DM_EVENT_READ, vp,
359 0, 0, 0, NULL);
360 } 356 }
357
361 return 0; 358 return 0;
362} 359}
363#endif /* HAVE_FOP_OPEN_EXEC */ 360#endif /* HAVE_FOP_OPEN_EXEC */