Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Aug 2002 12:02:25 +0400 (MSD)
From:      Maxim Konovalov <maxim@FreeBSD.org>
To:        "Semen A. Ustimenko" <semenu@FreeBSD.org>
Cc:        Robert Watson <rwatson@FreeBSD.org>, Maxim Konovalov <maxim@FreeBSD.org>, Gavin Atkinson <gavin@ury.york.ac.uk>, <current@FreeBSD.org>
Subject:   Re: sendfile(2) is broken (Was: ftpd problem: Input/output error)
Message-ID:  <20020812114358.E56725-100000@news1.macomnet.ru>
In-Reply-To: <20020812033540.F1596-100000@main.the.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 03:37+0700, Aug 12, 2002, Semen A. Ustimenko wrote:

> Hi!
>
> On Sun, 11 Aug 2002, Robert Watson wrote:
>
> > On Sun, 11 Aug 2002, Maxim Konovalov wrote:
> >
> > > This is sendfile(2) mis-behaviour arised after rev.1.109
> > > sys/kern/uipc_syscalls.c but I think the real problem in vn_rdwr(),
> > > sys/kern/vfs_vnops.c. Here is my patch but I really need somebody with
> > > vfs clue. I CC'ed Robert Watson as an author of sendfile(2)
> > > modification and our vfs expert.
> >
> > Semen Ustimenko <semenu@FreeBSD.org> ran into a similar problem, but his
> > fix was to teach sendfile() to pass in a non-NULL resid and handle the
> > failure mode better.  I suspect this fix is more correct since it will
> > both handle the failure mode and the data delivered, and probably is
> > required for other consumers of vn_rdwr().  He was going to run the patch
> > past dg, and then commit it assuming dg approved it, so hopefully it will
> > go into the tree in the next day or so.
> >
>
> David reviewed the patch and I have committed it few minutes ago.

Looks like a hack BDE is speaking about: passing a storage for residue
but never check it.

Anyway I don't understand why VOP_READ in vn_rdwr() returns a residue
in uio.uio_resid when all data trasferred actually?

-- 
Maxim Konovalov, maxim@FreeBSD.org




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020812114358.E56725-100000>