2023-06-26 02:36:40

by Lu Hongfei

[permalink] [raw]
Subject: [PATCH] fs: iomap: replace the ternary conditional operator with max_t()

It would be better to replace the traditional ternary conditional
operator with max_t() in iomap_iter

Signed-off-by: Lu Hongfei <[email protected]>
---
fs/iomap/iter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/iomap/iter.c b/fs/iomap/iter.c
index 79a0614eaab7..528fd196c50b 100644
--- a/fs/iomap/iter.c
+++ b/fs/iomap/iter.c
@@ -77,7 +77,7 @@ int iomap_iter(struct iomap_iter *iter, const struct iomap_ops *ops)

if (iter->iomap.length && ops->iomap_end) {
ret = ops->iomap_end(iter->inode, iter->pos, iomap_length(iter),
- iter->processed > 0 ? iter->processed : 0,
+ max_t(s64, iter->processed, 0),
iter->flags, &iter->iomap);
if (ret < 0 && !iter->processed)
return ret;
--
2.39.0



2023-06-26 04:26:23

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH] fs: iomap: replace the ternary conditional operator with max_t()

On Mon, Jun 26, 2023 at 10:22:12AM +0800, Lu Hongfei wrote:
> It would be better to replace the traditional ternary conditional
> operator with max_t() in iomap_iter

No it wouldn't.

There are two possible meanings for iter->processed. Either we
processed a positive number of bytes, or it's an errno. max_t()
doesn't express that. Your patch adds confusion, not reduces it.