Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/bd/vbd/disk.c

    r4285f384 r7ae01d5  
    11/*
    2  * Copyright (c) 2025 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3535
    3636#include <adt/list.h>
    37 #include <bd.h>
    3837#include <bd_srv.h>
    3938#include <block.h>
     
    7271static errno_t vbds_bd_get_block_size(bd_srv_t *, size_t *);
    7372static errno_t vbds_bd_get_num_blocks(bd_srv_t *, aoff64_t *);
    74 static errno_t vbds_bd_eject(bd_srv_t *);
    7573
    7674static errno_t vbds_bsa_translate(vbds_part_t *, aoff64_t, size_t, aoff64_t *);
     
    9593        .write_blocks = vbds_bd_write_blocks,
    9694        .get_block_size = vbds_bd_get_block_size,
    97         .get_num_blocks = vbds_bd_get_num_blocks,
    98         .eject = vbds_bd_eject
     95        .get_num_blocks = vbds_bd_get_num_blocks
    9996};
    10097
     
    584581        log_msg(LOG_DEFAULT, LVL_DEBUG, "block_fini(%zu)", sid);
    585582        block_fini(sid);
    586         free(disk->svc_name);
    587583        free(disk);
    588584        return EOK;
     
    10731069
    10741070        return EOK;
    1075 }
    1076 
    1077 static errno_t vbds_bd_eject(bd_srv_t *bd)
    1078 {
    1079         vbds_part_t *part = bd_srv_part(bd);
    1080         async_sess_t *sess;
    1081         bd_t *bdc;
    1082         errno_t rc;
    1083 
    1084         log_msg(LOG_DEFAULT, LVL_DEBUG, "vbds_bd_eject()");
    1085 
    1086         fibril_rwlock_read_lock(&part->lock);
    1087 
    1088         sess = loc_service_connect(part->disk->svc_id, INTERFACE_BLOCK, 0);
    1089         if (sess == NULL) {
    1090                 log_msg(LOG_DEFAULT, LVL_WARN,
    1091                     "vbds_bd_eject() - failed connect");
    1092                 fibril_rwlock_read_unlock(&part->lock);
    1093                 return EIO;
    1094         }
    1095 
    1096         rc = bd_open(sess, &bdc);
    1097         if (rc != EOK) {
    1098                 log_msg(LOG_DEFAULT, LVL_WARN,
    1099                     "vbds_bd_eject() - failed open");
    1100                 async_hangup(sess);
    1101                 fibril_rwlock_read_unlock(&part->lock);
    1102                 return EIO;
    1103         }
    1104 
    1105         rc = bd_eject(bdc);
    1106 
    1107         bd_close(bdc);
    1108         async_hangup(sess);
    1109 
    1110         fibril_rwlock_read_unlock(&part->lock);
    1111         return rc;
    11121071}
    11131072
Note: See TracChangeset for help on using the changeset viewer.