Enable vn_io_fault() lock avoidance for UFS.
Tested by: pho MFC after: 2 months
This commit is contained in:
parent
41014d996a
commit
b569050a78
@ -1064,7 +1064,7 @@ ffs_mountfs(devvp, mp, td)
|
|||||||
*/
|
*/
|
||||||
MNT_ILOCK(mp);
|
MNT_ILOCK(mp);
|
||||||
mp->mnt_kern_flag |= MNTK_MPSAFE | MNTK_LOOKUP_SHARED |
|
mp->mnt_kern_flag |= MNTK_MPSAFE | MNTK_LOOKUP_SHARED |
|
||||||
MNTK_EXTENDED_SHARED;
|
MNTK_EXTENDED_SHARED | MNTK_NO_IOPF;
|
||||||
MNT_IUNLOCK(mp);
|
MNT_IUNLOCK(mp);
|
||||||
#ifdef UFS_EXTATTR
|
#ifdef UFS_EXTATTR
|
||||||
#ifdef UFS_EXTATTR_AUTOSTART
|
#ifdef UFS_EXTATTR_AUTOSTART
|
||||||
|
@ -567,7 +567,7 @@ ffs_read(ap)
|
|||||||
xfersize = size;
|
xfersize = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
error = uiomove((char *)bp->b_data + blkoffset,
|
error = vn_io_fault_uiomove((char *)bp->b_data + blkoffset,
|
||||||
(int)xfersize, uio);
|
(int)xfersize, uio);
|
||||||
if (error)
|
if (error)
|
||||||
break;
|
break;
|
||||||
@ -738,8 +738,8 @@ ffs_write(ap)
|
|||||||
if (size < xfersize)
|
if (size < xfersize)
|
||||||
xfersize = size;
|
xfersize = size;
|
||||||
|
|
||||||
error =
|
error = vn_io_fault_uiomove((char *)bp->b_data + blkoffset,
|
||||||
uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio);
|
(int)xfersize, uio);
|
||||||
/*
|
/*
|
||||||
* If the buffer is not already filled and we encounter an
|
* If the buffer is not already filled and we encounter an
|
||||||
* error while trying to fill it, we have to clear out any
|
* error while trying to fill it, we have to clear out any
|
||||||
|
Loading…
Reference in New Issue
Block a user