From: Linus Torvalds <torvalds@linux-foundation.org>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>,
Thomas Meyer <thomas@m3y3r.de>,
David Miller <davem@davemloft.net>,
linux-kernel@vger.kernel.org, autofs@vger.kernel.org,
raven@themaw.net, stable@kernel.org
Subject: Re: [PATCH v2] Introduce a version6 of autofs interface, to fix design error.
Date: Sun, 29 Apr 2012 11:29:16 -0700 [thread overview]
Message-ID: <CA+55aFzJjk8vvY7au-aUOJqJaRaFT3zqP0_H9JXS2Y93wkXwEg@mail.gmail.com> (raw)
In-Reply-To: <4F9CF191.5020607@msgid.tls.msk.ru>
On Sun, Apr 29, 2012 at 12:45 AM, Michael Tokarev <mjt@tls.msk.ru> wrote:
> On 29.04.2012 11:19, Linus Torvalds wrote:
>>
>> Gaah, it should, but it won't.
>>
>> I bet my original patch worked fine, because the pipe has only one
>> inode and pipe structure. But it has *two* 'struct file's associated
>> with it, and autofs only ever sees the writing side, and never gets to
>> mark the reading side O_DIRECT. So yeah, the reading side won't do the
>> proper packetized read.
>
> Can't we go - in kernel - from one struct file to pipe structure to
> another file structure and set O_DIRECT there? Autofs kernel code
> checks if the file descriptor is a pipe, so it should be possible...
Nope. We don't have any back-pointers to the other "struct file". They
have the inode - and the "struct pipe_inode_info" in common, but
there's no way to find the other "struct file" from that.
And sure, a pipe in Linux could work with a single read-write "struct
file" that is used both for the reading and writing, but that's not
how the "pipe()" system call is defined - it gets two separate file
descriptors, one read-only, one write-only. So that's what autofs and
systemd hands the kernel - the write side of the pipe. And we can't
find the read-side one.
But I think I have another approach. We can make the *writer* be the
only one that cares about the packetized nature, and if it's a packet
write, it will set a PIPE_BUF_PACKET flag in the pipe buffer. The
reader can react to that. I think that actually has the potential to
make the code a bit prettier too..
I'll cook it up.
Linus
next prev parent reply other threads:[~2012-04-29 18:29 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-26 13:34 [PATCH v2] Introduce a version6 of autofs interface, to fix design error Michael Tokarev
2012-04-26 13:44 ` Michael Tokarev
2012-04-27 0:37 ` Linus Torvalds
2012-04-27 9:45 ` Michael Tokarev
2012-04-27 15:47 ` Mark Lord
2012-04-27 20:37 ` H. Peter Anvin
2012-04-28 22:20 ` Mark Lord
2012-04-27 16:22 ` David Miller
2012-04-27 17:10 ` Michael Tokarev
2012-04-27 17:28 ` David Miller
2012-04-27 18:19 ` Linus Torvalds
2012-04-27 18:34 ` David Miller
2012-04-27 18:42 ` Linus Torvalds
2012-04-27 18:55 ` Linus Torvalds
2012-04-27 19:14 ` David Miller
2012-04-27 19:16 ` David Miller
2012-04-27 19:19 ` Linus Torvalds
2012-04-27 19:24 ` David Miller
2012-04-27 19:56 ` Linus Torvalds
2012-04-27 20:13 ` Stef Bon
2012-04-27 20:29 ` David Miller
2012-04-27 22:40 ` Linus Torvalds
2012-04-27 20:43 ` H. Peter Anvin
2012-04-27 22:42 ` Linus Torvalds
2012-04-27 22:56 ` H. Peter Anvin
2012-04-27 23:07 ` Linus Torvalds
2012-04-28 0:03 ` H. Peter Anvin
2012-04-28 0:17 ` Linus Torvalds
2012-04-27 22:42 ` Alan Cox
2012-04-27 22:49 ` Linus Torvalds
2012-04-27 23:27 ` Linus Torvalds
2012-04-28 16:10 ` Linus Torvalds
2012-04-29 6:37 ` Michael Tokarev
2012-04-29 7:19 ` Linus Torvalds
2012-04-29 7:45 ` Michael Tokarev
2012-04-29 18:29 ` Linus Torvalds [this message]
2012-04-29 19:09 ` Linus Torvalds
2012-04-29 19:53 ` Michael Tokarev
2012-04-29 20:53 ` Linus Torvalds
2012-04-30 8:41 ` Thomas Meyer
2012-04-28 1:56 ` Ian Kent
2012-04-27 19:08 ` David Miller
2012-04-27 20:45 ` H. Peter Anvin
2012-04-27 20:42 ` H. Peter Anvin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CA+55aFzJjk8vvY7au-aUOJqJaRaFT3zqP0_H9JXS2Y93wkXwEg@mail.gmail.com \
--to=torvalds@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=autofs@vger.kernel.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mjt@tls.msk.ru \
--cc=raven@themaw.net \
--cc=stable@kernel.org \
--cc=thomas@m3y3r.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).