Thread (20 messages) 20 messages, 6 authors, 2019-12-18

Re: [PATCH 4/6] iomap: add struct iomap_ctx

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2019-12-17 19:40:02
Also in: linux-fsdevel, linux-mm

On Tue, Dec 17, 2019 at 6:40 AM Jens Axboe [off-list ref] wrote:
We pass a lot of arguments to iomap_apply(), and subsequently to the
actors that it calls. In preparation for adding one more argument,
switch them to using a struct iomap_ctx instead. The actor gets a const
version of that, they are not supposed to change anything in it.
Looks generally like what I expected, but when looking at the patch I
notice that the type of 'len' is crazy and wrong.

It was wrong before too, though:
-dax_iomap_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
'loff_t length' is not right.
+       loff_t pos = data->pos;
+       loff_t length = pos + data->len;
And WTH is that? "pos + data->len" is not "length", that's end. And this:
        loff_t end = pos + length, done = 0;
What? Now 'end' is 'pos+length', which is 'pos+pos+data->len'.

WHAA?
quoted hunk ↗ jump to hunk
@@ -1197,22 +1200,26 @@ dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter,
 {
+       loff_t ret = 0, done = 0;
More insanity. "ret" shouldn't be loff_t.

dax_iomap_rw() returns a ssize_t.
+       loff_t count = data->len;
More of this crazy things.
 iomap_zero_range(struct inode *inode, loff_t pos, loff_t len, bool *did_zero,
This was wrong before.
+struct iomap_ctx {
+       struct inode    *inode;
+       loff_t          pos;
+       loff_t          len;
+       void            *priv;
+       unsigned        flags;
+};
Please make 'len' be 'size_t' or something.

If you're on a 32-bit architecture, you shouldn't be writing more than
4GB in a go anyway.

Is there some reason for this horrible case of "let's allow 64-bit sizes?"

Because even if there is, it shouldn't be "loff_t". That's an
_offset_. Not a length.

            Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help