From: Al Viro <viro@ZenIV.linux.org.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Yan@ZenIV.linux.org.uk, Zheng <zyan@redhat.com>,
Zhu@ZenIV.linux.org.uk, Caifeng <zhucaifeng@unissoft-nj.com>
Subject: Re: [git pull] vfs fix
Date: Sun, 27 Nov 2016 02:51:18 +0000 [thread overview]
Message-ID: <20161127025113.GX1555@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20161127022506.GW1555@ZenIV.linux.org.uk>
On Sun, Nov 27, 2016 at 02:25:09AM +0000, Al Viro wrote:
> Anyway, leaving that BUG_ON() had been wrong; I can send a followup
> massaging that thing as you've suggested, if you are interested in
> that. But keep in mind that the whole iov_iter_get_pages...() calling
> conventions are going to be changed, hopefully soon.
BTW, speaking of iov_iter_get_pages_alloc() callers and splice:
"ceph: combine as many iovec as possile into one OSD request" has added
static size_t dio_get_pagev_size(const struct iov_iter *it)
{
const struct iovec *iov = it->iov;
const struct iovec *iovend = iov + it->nr_segs;
size_t size;
size = iov->iov_len - it->iov_offset;
/*
* An iov can be page vectored when both the current tail
* and the next base are page aligned.
*/
while (PAGE_ALIGNED((iov->iov_base + iov->iov_len)) &&
(++iov < iovend && PAGE_ALIGNED((iov->iov_base)))) {
size += iov->iov_len;
}
dout("dio_get_pagevlen len = %zu\n", size);
return size;
}
... with 'it' possibly being bio_vec-backed iterator. Could somebody
explain what that code is trying to do?
I would really like to hear details - I'm not saying that the goal mentioned
in the commit message is worthless, but I don't know ceph codebase well
enough to tell what would be a good way to implement that. In its current
form it's obviously broken.
next prev parent reply other threads:[~2016-11-27 2:51 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-27 1:13 [git pull] vfs fix Al Viro
2016-11-27 1:48 ` Linus Torvalds
2016-11-27 2:25 ` Al Viro
2016-11-27 2:51 ` Al Viro [this message]
2016-11-27 3:04 ` Al Viro
2016-11-28 8:54 ` Yan, Zheng
2016-11-27 2:53 ` Linus Torvalds
-- strict thread matches above, loose matches on Subject: below --
2016-03-31 4:27 Al Viro
2015-05-31 21:37 Al Viro
2011-11-22 17:44 Al Viro
2011-11-22 17:48 ` Linus Torvalds
2011-11-22 21:09 ` Al Viro
2011-11-22 21:24 ` Linus Torvalds
2011-08-07 8:54 Al Viro
2011-02-24 7:20 Al Viro
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=20161127025113.GX1555@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=Yan@ZenIV.linux.org.uk \
--cc=Zhu@ZenIV.linux.org.uk \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=zhucaifeng@unissoft-nj.com \
--cc=zyan@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.