Changeset 01900b6 in mainline for uspace/srv/fs/ext4fs/ext4fs.c


Ignore:
Timestamp:
2020-01-21T15:10:26Z (5 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
51da086
Parents:
f8fb03b
Message:

Use an optional output argument instead of errno to propagate the error

The use of errno is troublesome in all other than top-level library
functions since the value in errno might get overwritten by subsequent
inner calls on the error path (e.g. cleanup, deallocation, etc.). The
optional output argument makes it possible to explicitly ignore the
error code if it is not needed, but still to pass it reliably back to
the original caller.

This change affecs async_connect_me_to(),
async_connect_me_to_blocking(), async_connect_kbox(), service_connect(),
service_connect_blocking() and loader_connect().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/ext4fs/ext4fs.c

    rf8fb03b r01900b6  
    4343#include <ipc/services.h>
    4444#include <str.h>
     45#include <str_error.h>
    4546#include "ext4/ops.h"
    4647#include "../../vfs/vfs.h"
     
    6667        }
    6768
     69        errno_t rc;
    6870        async_sess_t *vfs_sess = service_connect_blocking(SERVICE_VFS,
    69             INTERFACE_VFS_DRIVER, 0);
     71            INTERFACE_VFS_DRIVER, 0, &rc);
    7072        if (!vfs_sess) {
    71                 printf("%s: Failed to connect to VFS\n", NAME);
     73                printf("%s: Failed to connect to VFS: %s\n", NAME, str_error(rc));
    7274                return 2;
    7375        }
    7476
    75         errno_t rc = ext4_global_init();
     77        rc = ext4_global_init();
    7678        if (rc != EOK) {
    77                 printf("%s: Global initialization failed\n", NAME);
     79                printf("%s: Global initialization failed: %s\n", NAME,
     80                    str_error(rc));
    7881                return rc;
    7982        }
     
    8285            &ext4_libfs_ops);
    8386        if (rc != EOK) {
    84                 printf("%s: Failed to register file system\n", NAME);
     87                printf("%s: Failed to register file system: %s\n", NAME,
     88                    str_error(rc));
    8589                return rc;
    8690        }
Note: See TracChangeset for help on using the changeset viewer.