Re: Early SPECWeb99 results on 2.5.33 with TSO on e1000

From: Jeff Garzik (jgarzik@mandrakesoft.com)
Date: Mon Sep 16 2002 - 19:01:24 EST


David S. Miller wrote:
> From: Jeff Garzik <jgarzik@mandrakesoft.com>
> Date: Mon, 16 Sep 2002 19:48:37 -0400
>
> I dunno when it happened, but 2.5.x now returns EINVAL for all
> file->file cases.
>
> In 2.4.x, if sendpage is NULL, file_send_actor in mm/filemap.c faked a
> call to fops->write().
> In 2.5.x, if sendpage is NULL, EINVAL is unconditionally returned.
>
>
> What if source and destination file and offsets match?

The same data is written out. No deadlock.
(unless the attached test is wrong)

        Jeff


#include <sys/sendfile.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
        int in, out;
        struct stat st;
        off_t off = 0;
        ssize_t rc;

        in = open("test.data", O_RDONLY);
        if (in < 0) {
                perror("test.data read");
                return 1;
        }

        fstat(in, &st);

        out = open("test.data", O_WRONLY);
        if (out < 0) {
                perror("test.data write");
                return 1;
        }

        rc = sendfile(out, in, &off, st.st_size);
        if (rc < 0) {
                perror("sendfile");
                close(in);
                unlink("out");
                close(out);
                return 1;
        }

        close(in);
        close(out);
        return 0;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Sep 23 2002 - 22:00:18 EST