From 1e85ddb784375a20e80a60d185998c2753757616 Mon Sep 17 00:00:00 2001
From: "mwleeds@mailtundra.com" <mwleeds@mailtundra.com>
Date: Sat, 6 Apr 2024 18:47:28 -0700
Subject: [PATCH] zfs: Fix return value of fs_devread()

As evidenced by how other filesystems handle it, a return value of 0
from fs_devread() means failure; nonzero means success. The opposite
assumption was being made in zfs.c for the use of zfs_devread() so fix
the confusion by making zfs_devread() return 0 on success.

It probably doesn't make sense to change the handling of zfs_devread()
in zfs.c instead, because as it is it matches the semantics of the other
functions there.

Signed-off-by: Phaedrus Leeds <mwleeds@mailtundra.com>
---
 fs/zfs/dev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/zfs/dev.c b/fs/zfs/dev.c
index 251e7d1f74..fcd9893b3a 100644
--- a/fs/zfs/dev.c
+++ b/fs/zfs/dev.c
@@ -26,5 +26,5 @@ void zfs_set_blk_dev(struct blk_desc *rbdd, struct disk_partition *info)
 int zfs_devread(int sector, int byte_offset, int byte_len, char *buf)
 {
 	return fs_devread(zfs_blk_desc, part_info, sector, byte_offset,
-			  byte_len, buf);
+			  byte_len, buf) ? 0 : 1;
 }
-- 
2.39.5