diff options
author | Christoph Hellwig <hch@infradead.org> | 2007-08-28 21:44:18 -0400 |
---|---|---|
committer | Tim Shimmin <tes@chook.melbourne.sgi.com> | 2007-10-15 21:23:43 -0400 |
commit | 2f6f7b3d9b5600e1f6e7622c62ab30f36bd0f57f (patch) | |
tree | 06fe541eb0b90227a8a433d8e3cf66d621df7038 /fs/xfs/linux-2.6/xfs_file.c | |
parent | 739bfb2a7dfa369324f74aad1d020d6e0775e4f0 (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.c | 31 |
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 | |||
346 | xfs_file_open_exec( | 344 | xfs_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 */ |