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 <mwle...@mailtundra.com>
Tested-by: Phaedrus Leeds <mwle...@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
@@ -19,12 +19,12 @@ static struct disk_partition *part_info;
 void zfs_set_blk_dev(struct blk_desc *rbdd, struct disk_partition *info)
 {
        zfs_blk_desc = rbdd;
        part_info = info;
 }
 
 /* err */
 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.44.0

Reply via email to