Re: [RFD w/info-PATCH] device arguments from lookup, partion code

From: Alexander Viro (viro@math.psu.edu)
Date: Sat May 19 2001 - 22:31:56 EDT

  • Next message: Linus Torvalds: "Re: DVD blockdevice buffers"

    On Sat, 19 May 2001, Richard Gooch wrote:

    > There is another reason to use ioctl(2): when you need to send data to
    > the kernel/driver and wait for a response. It supports transactions,
    > which read(2) and write(2) cannot. Therefore it remains useful.

    Somebody, run to database vendors and tell them that they were selling
    snake oil all that time - Richard had just shown that support of remote
    transactions is impossible. Can't do that with read() and write(),
    dontcha know?

    Richard, I hate to break it on you, but
            fd = open(foo, 2);
                    /* kernel creates a new struct file, as usual */
            write(fd, data, len);
                    /* kernel starts the operation */
            read(fd, reply, size);
                    /* we block */
                    /* operation is completed */
                    /* kernel passes reply to user and wakes it up */
    _is_ a support of transactions. And yes, we can trivially distinguish
    between requests from different sources - struct file * passed to
    ->write() is more than enough for that. Moreover, we can easily block
    other writers until the action is completed.

    Please, get a bloody clue. There are reasons for and against ioctls, but
    need to send data and wait for responce is _NOT_ one of them.

    -
    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 : Sat May 19 2001 - 22:34:41 EDT