|
@@ -43,9 +43,6 @@
|
|
|
#include <linux/smp_lock.h>
|
|
|
|
|
|
static struct vm_operations_struct xfs_file_vm_ops;
|
|
|
-#ifdef CONFIG_XFS_DMAPI
|
|
|
-static struct vm_operations_struct xfs_dmapi_file_vm_ops;
|
|
|
-#endif
|
|
|
|
|
|
STATIC_INLINE ssize_t
|
|
|
__xfs_file_read(
|
|
@@ -202,22 +199,6 @@ xfs_file_fsync(
|
|
|
(xfs_off_t)0, (xfs_off_t)-1);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_XFS_DMAPI
|
|
|
-STATIC int
|
|
|
-xfs_vm_fault(
|
|
|
- struct vm_area_struct *vma,
|
|
|
- struct vm_fault *vmf)
|
|
|
-{
|
|
|
- struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
|
|
|
- bhv_vnode_t *vp = vn_from_inode(inode);
|
|
|
-
|
|
|
- ASSERT_ALWAYS(vp->v_vfsp->vfs_flag & VFS_DMI);
|
|
|
- if (XFS_SEND_MMAP(XFS_VFSTOM(vp->v_vfsp), vma, 0))
|
|
|
- return VM_FAULT_SIGBUS;
|
|
|
- return filemap_fault(vma, vmf);
|
|
|
-}
|
|
|
-#endif /* CONFIG_XFS_DMAPI */
|
|
|
-
|
|
|
/*
|
|
|
* Unfortunately we can't just use the clean and simple readdir implementation
|
|
|
* below, because nfs might call back into ->lookup from the filldir callback
|
|
@@ -386,11 +367,6 @@ xfs_file_mmap(
|
|
|
vma->vm_ops = &xfs_file_vm_ops;
|
|
|
vma->vm_flags |= VM_CAN_NONLINEAR;
|
|
|
|
|
|
-#ifdef CONFIG_XFS_DMAPI
|
|
|
- if (XFS_M(filp->f_path.dentry->d_inode->i_sb)->m_flags & XFS_MOUNT_DMAPI)
|
|
|
- vma->vm_ops = &xfs_dmapi_file_vm_ops;
|
|
|
-#endif /* CONFIG_XFS_DMAPI */
|
|
|
-
|
|
|
file_accessed(filp);
|
|
|
return 0;
|
|
|
}
|
|
@@ -437,47 +413,6 @@ xfs_file_ioctl_invis(
|
|
|
return error;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_XFS_DMAPI
|
|
|
-#ifdef HAVE_VMOP_MPROTECT
|
|
|
-STATIC int
|
|
|
-xfs_vm_mprotect(
|
|
|
- struct vm_area_struct *vma,
|
|
|
- unsigned int newflags)
|
|
|
-{
|
|
|
- struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
|
|
|
- struct xfs_mount *mp = XFS_M(inode->i_sb);
|
|
|
- int error = 0;
|
|
|
-
|
|
|
- if (mp->m_flags & XFS_MOUNT_DMAPI) {
|
|
|
- if ((vma->vm_flags & VM_MAYSHARE) &&
|
|
|
- (newflags & VM_WRITE) && !(vma->vm_flags & VM_WRITE))
|
|
|
- error = XFS_SEND_MMAP(mp, vma, VM_WRITE);
|
|
|
- }
|
|
|
- return error;
|
|
|
-}
|
|
|
-#endif /* HAVE_VMOP_MPROTECT */
|
|
|
-#endif /* CONFIG_XFS_DMAPI */
|
|
|
-
|
|
|
-#ifdef HAVE_FOP_OPEN_EXEC
|
|
|
-/* If the user is attempting to execute a file that is offline then
|
|
|
- * we have to trigger a DMAPI READ event before the file is marked as busy
|
|
|
- * otherwise the invisible I/O will not be able to write to the file to bring
|
|
|
- * it back online.
|
|
|
- */
|
|
|
-STATIC int
|
|
|
-xfs_file_open_exec(
|
|
|
- struct inode *inode)
|
|
|
-{
|
|
|
- struct xfs_mount *mp = XFS_M(inode->i_sb);
|
|
|
- struct xfs_inode *ip = XFS_I(inode);
|
|
|
-
|
|
|
- if (unlikely(mp->m_flags & XFS_MOUNT_DMAPI) &&
|
|
|
- DM_EVENT_ENABLED(ip, DM_EVENT_READ))
|
|
|
- return -XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-#endif /* HAVE_FOP_OPEN_EXEC */
|
|
|
-
|
|
|
/*
|
|
|
* mmap()d file has taken write protection fault and is being made
|
|
|
* writable. We can set the page state up correctly for a writable
|
|
@@ -546,13 +481,3 @@ static struct vm_operations_struct xfs_file_vm_ops = {
|
|
|
.fault = filemap_fault,
|
|
|
.page_mkwrite = xfs_vm_page_mkwrite,
|
|
|
};
|
|
|
-
|
|
|
-#ifdef CONFIG_XFS_DMAPI
|
|
|
-static struct vm_operations_struct xfs_dmapi_file_vm_ops = {
|
|
|
- .fault = xfs_vm_fault,
|
|
|
- .page_mkwrite = xfs_vm_page_mkwrite,
|
|
|
-#ifdef HAVE_VMOP_MPROTECT
|
|
|
- .mprotect = xfs_vm_mprotect,
|
|
|
-#endif
|
|
|
-};
|
|
|
-#endif /* CONFIG_XFS_DMAPI */
|