svn commit: r236322 - head/sys/ufs/ffs
Konstantin Belousov
kib at FreeBSD.org
Wed May 30 16:45:41 UTC 2012
Author: kib
Date: Wed May 30 16:45:41 2012
New Revision: 236322
URL: http://svn.freebsd.org/changeset/base/236322
Log:
Enable vn_io_fault() lock avoidance for UFS.
Tested by: pho
MFC after: 2 months
Modified:
head/sys/ufs/ffs/ffs_vfsops.c
head/sys/ufs/ffs/ffs_vnops.c
Modified: head/sys/ufs/ffs/ffs_vfsops.c
==============================================================================
--- head/sys/ufs/ffs/ffs_vfsops.c Wed May 30 16:42:08 2012 (r236321)
+++ head/sys/ufs/ffs/ffs_vfsops.c Wed May 30 16:45:41 2012 (r236322)
@@ -1064,7 +1064,7 @@ ffs_mountfs(devvp, mp, td)
*/
MNT_ILOCK(mp);
mp->mnt_kern_flag |= MNTK_MPSAFE | MNTK_LOOKUP_SHARED |
- MNTK_EXTENDED_SHARED;
+ MNTK_EXTENDED_SHARED | MNTK_NO_IOPF;
MNT_IUNLOCK(mp);
#ifdef UFS_EXTATTR
#ifdef UFS_EXTATTR_AUTOSTART
Modified: head/sys/ufs/ffs/ffs_vnops.c
==============================================================================
--- head/sys/ufs/ffs/ffs_vnops.c Wed May 30 16:42:08 2012 (r236321)
+++ head/sys/ufs/ffs/ffs_vnops.c Wed May 30 16:45:41 2012 (r236322)
@@ -567,7 +567,7 @@ ffs_read(ap)
xfersize = size;
}
- error = uiomove((char *)bp->b_data + blkoffset,
+ error = vn_io_fault_uiomove((char *)bp->b_data + blkoffset,
(int)xfersize, uio);
if (error)
break;
@@ -738,8 +738,8 @@ ffs_write(ap)
if (size < xfersize)
xfersize = size;
- error =
- uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio);
+ error = vn_io_fault_uiomove((char *)bp->b_data + blkoffset,
+ (int)xfersize, uio);
/*
* If the buffer is not already filled and we encounter an
* error while trying to fill it, we have to clear out any
More information about the svn-src-head
mailing list