summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_vnops.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1997-11-29 01:33:10 +0000
committerdyson <dyson@FreeBSD.org>1997-11-29 01:33:10 +0000
commit6781e003d564b1396bfc29a0570740018cadaddc (patch)
treecaf6592fe18c0525a352355d3506947c0d06107c /sys/kern/vfs_vnops.c
parent81c1440f4f7b69e385d76c2447b4940fd6494e2e (diff)
downloadFreeBSD-src-6781e003d564b1396bfc29a0570740018cadaddc.zip
FreeBSD-src-6781e003d564b1396bfc29a0570740018cadaddc.tar.gz
Fix and complete the AIO syscalls. There are some performance enhancements
coming up soon, but the code is functional. Docs will be forthcoming.
Diffstat (limited to 'sys/kern/vfs_vnops.c')
-rw-r--r--sys/kern/vfs_vnops.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
index c5be2e4..dd12e9f 100644
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_vnops.c 8.2 (Berkeley) 1/21/94
- * $Id: vfs_vnops.c,v 1.40 1997/10/27 15:26:23 bde Exp $
+ * $Id: vfs_vnops.c,v 1.41 1997/11/07 08:53:11 phk Exp $
*/
#include <sys/param.h>
@@ -276,7 +276,8 @@ vn_read(fp, uio, cred)
VOP_LEASE(vp, p, cred, LEASE_READ);
vn_lock(vp, LK_SHARED | LK_NOPAUSE | LK_RETRY, p);
- uio->uio_offset = fp->f_offset;
+ if (uio->uio_offset == -1)
+ uio->uio_offset = fp->f_offset;
count = uio->uio_resid;
flag = 0;
if (fp->f_flag & FNONBLOCK)
@@ -329,7 +330,7 @@ vn_write(fp, uio, cred)
struct proc *p = uio->uio_procp;
int count, error, ioflag = IO_UNIT;
- if (vp->v_type == VREG && (fp->f_flag & O_APPEND))
+ if (uio->uio_offset == -1 && vp->v_type == VREG && (fp->f_flag & O_APPEND))
ioflag |= IO_APPEND;
if (fp->f_flag & FNONBLOCK)
ioflag |= IO_NDELAY;
OpenPOWER on IntegriCloud