Changeset b7a4d06 in mainline for uspace/srv/volsrv


Ignore:
Timestamp:
2015-07-18T12:55:12Z (10 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c43db5f
Parents:
70815a24
Message:

Most of extended (but not logical) partition support.

Location:
uspace/srv/volsrv
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/volsrv/disk.c

    r70815a24 rb7a4d06  
    271271}
    272272
    273 int vol_disk_empty(vol_disk_t *disk)
     273int vol_disk_empty_disk(vol_disk_t *disk)
    274274{
    275275        int rc;
     
    286286}
    287287
     288int vol_disk_get_info(vol_disk_t *disk, vol_disk_info_t *dinfo)
     289{
     290        vbd_disk_info_t vdinfo;
     291        int rc;
     292
     293        dinfo->dcnt = disk->dcnt;
     294
     295        if (disk->dcnt == dc_label) {
     296                rc = vbd_disk_info(vbd, disk->svc_id, &vdinfo);
     297                if (rc != EOK)
     298                        return rc;
     299
     300                dinfo->ltype = vdinfo.ltype;
     301                dinfo->flags = vdinfo.flags;
     302        }
     303
     304        return EOK;
     305}
     306
    288307
    289308/** @}
  • uspace/srv/volsrv/disk.h

    r70815a24 rb7a4d06  
    3939
    4040#include <sys/types.h>
     41#include <vol.h>
    4142#include "types/disk.h"
    4243
     
    4647extern int vol_disk_find_by_id(service_id_t, vol_disk_t **);
    4748extern int vol_disk_label_create(vol_disk_t *, label_type_t);
    48 extern int vol_disk_empty(vol_disk_t *);
     49extern int vol_disk_empty_disk(vol_disk_t *);
     50extern int vol_disk_get_info(vol_disk_t *, vol_disk_info_t *);
    4951
    5052#endif
  • uspace/srv/volsrv/volsrv.c

    r70815a24 rb7a4d06  
    4343#include <stdlib.h>
    4444#include <task.h>
     45#include <vol.h>
    4546
    4647#include "disk.h"
     
    118119        service_id_t sid;
    119120        vol_disk_t *disk;
     121        vol_disk_info_t dinfo;
    120122        int rc;
    121123
     
    127129        }
    128130
    129         async_answer_2(iid, rc, disk->dcnt, disk->ltype);
     131        rc = vol_disk_get_info(disk, &dinfo);
     132        if (rc != EOK) {
     133                async_answer_0(iid, EIO);
     134                return;
     135        }
     136
     137        async_answer_3(iid, rc, dinfo.dcnt, dinfo.ltype, dinfo.flags);
    130138}
    131139
     
    169177        }
    170178
    171         rc = vol_disk_empty(disk);
     179        rc = vol_disk_empty_disk(disk);
    172180        if (rc != EOK) {
    173181                async_answer_0(iid, EIO);
Note: See TracChangeset for help on using the changeset viewer.