summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/ufs/ffs/ffs_vnops.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index c90f450..848ac9d 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -975,14 +975,18 @@ ffs_extread(struct vnode *vp, struct uio *uio, int ioflag)
#endif
orig_resid = uio->uio_resid;
- if (orig_resid <= 0)
+ if (orig_resid == 0)
return (0);
+ /*
+ * The caller is supposed to check if
+ * uio->uio_offset >= 0 and uio->uio_resid >= 0.
+ */
bytesinfile = dp->di_extsize - uio->uio_offset;
if (bytesinfile <= 0) {
if ((vp->v_mount->mnt_flag & MNT_NOATIME) == 0)
ip->i_flag |= IN_ACCESS;
- return 0;
+ return (0);
}
for (error = 0, bp = NULL; uio->uio_resid > 0; bp = NULL) {
OpenPOWER on IntegriCloud