Changeset 4979403 in mainline for uspace/srv/vfs


Ignore:
Timestamp:
2011-09-23T15:39:07Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
286286c
Parents:
8895d05
git-author:
Maurizio Lombardi <m.lombardi85@…> (2011-09-23 15:39:07)
git-committer:
Jakub Jermar <jakub@…> (2011-09-23 15:39:07)
Message:

Allow more instances of the same FS to be used.
(Thanks to Maurizio Lombardi.)

Location:
uspace/srv/vfs
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/vfs/vfs.h

    r8895d05 r4979403  
    171171extern void vfs_exchange_release(async_exch_t *);
    172172
    173 extern fs_handle_t fs_name_to_handle(char *, bool);
     173extern fs_handle_t fs_name_to_handle(unsigned int instance, char *, bool);
    174174extern vfs_info_t *fs_handle_to_info(fs_handle_t);
    175175
  • uspace/srv/vfs/vfs_ops.c

    r8895d05 r4979403  
    276276       
    277277        /*
     278         * Instance number is passed as ARG3.
     279         */
     280        unsigned int instance = IPC_GET_ARG3(*request);
     281
     282        /*
    278283         * For now, don't make use of ARG3, but it can be used to
    279284         * carry mount options in the future.
     
    335340        fs_handle_t fs_handle;
    336341recheck:
    337         fs_handle = fs_name_to_handle(fs_name, false);
     342        fs_handle = fs_name_to_handle(instance, fs_name, false);
    338343        if (!fs_handle) {
    339344                if (flags & IPC_FLAG_BLOCKING) {
  • uspace/srv/vfs/vfs_register.c

    r8895d05 r4979403  
    154154         * Check for duplicit registrations.
    155155         */
    156         if (fs_name_to_handle(fs_info->vfs_info.name, false)) {
     156        if (fs_name_to_handle(fs_info->vfs_info.instance,
     157                        fs_info->vfs_info.name, false)) {
    157158                /*
    158159                 * We already register a fs like this.
     
    297298 *
    298299 */
    299 fs_handle_t fs_name_to_handle(char *name, bool lock)
     300fs_handle_t fs_name_to_handle(unsigned int instance, char *name, bool lock)
    300301{
    301302        int handle = 0;
     
    306307        list_foreach(fs_list, cur) {
    307308                fs_info_t *fs = list_get_instance(cur, fs_info_t, fs_link);
    308                 if (str_cmp(fs->vfs_info.name, name) == 0) {
     309                if (str_cmp(fs->vfs_info.name, name) == 0 &&
     310                                instance == fs->vfs_info.instance) {
    309311                        handle = fs->fs_handle;
    310312                        break;
Note: See TracChangeset for help on using the changeset viewer.