The subsequent call to os_set_fd_block() overwrites the previous
return value. OR the two return values together to fix it.

Fixes: f88f0bdfc32f ("um: UBD Improvements")
Signed-off-by: Tiwei Bie <tiwei....@antgroup.com>
---
 arch/um/drivers/ubd_user.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/um/drivers/ubd_user.c b/arch/um/drivers/ubd_user.c
index c5e6545f6fcf..8e8a8bf518b6 100644
--- a/arch/um/drivers/ubd_user.c
+++ b/arch/um/drivers/ubd_user.c
@@ -41,7 +41,7 @@ int start_io_thread(struct os_helper_thread **td_out, int 
*fd_out)
        *fd_out = fds[1];
 
        err = os_set_fd_block(*fd_out, 0);
-       err = os_set_fd_block(kernel_fd, 0);
+       err |= os_set_fd_block(kernel_fd, 0);
        if (err) {
                printk("start_io_thread - failed to set nonblocking I/O.\n");
                goto out_close;
-- 
2.34.1


Reply via email to