Changeset 07deef5 in mainline for uspace/srv/vfs/vfs_register.c


Ignore:
Timestamp:
2008-03-10T19:57:23Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8ad8e49
Parents:
088cecc
Message:

Fibril serialization is required when two file systems register contemporarily.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/vfs/vfs_register.c

    r088cecc r07deef5  
    206206               
    207207        futex_down(&fs_head_futex);
     208        fibril_inc_sercount();
    208209
    209210        /*
     
    215216                 */
    216217                dprintf("FS is already registered.\n");
     218                fibril_dec_sercount();
    217219                futex_up(&fs_head_futex);
    218220                free(fs_info);
     
    227229        dprintf("Inserting FS into the list of registered file systems.\n");
    228230        list_append(&fs_info->fs_link, &fs_head);
    229 
     231       
    230232        /*
    231233         * Now we want the client to send us the IPC_M_CONNECT_TO_ME call so
     
    237239                dprintf("Unexpected call, method = %d\n", IPC_GET_METHOD(call));
    238240                list_remove(&fs_info->fs_link);
     241                fibril_dec_sercount();
    239242                futex_up(&fs_head_futex);
    240243                free(fs_info);
     
    255258                dprintf("Unexpected call, method = %d\n", IPC_GET_METHOD(call));
    256259                list_remove(&fs_info->fs_link);
     260                fibril_dec_sercount();
    257261                futex_up(&fs_head_futex);
    258262                ipc_hangup(fs_info->phone);
     
    269273                dprintf("Client suggests wrong size of PFB, size = %d\n", size);
    270274                list_remove(&fs_info->fs_link);
     275                fibril_dec_sercount();
    271276                futex_up(&fs_head_futex);
    272277                ipc_hangup(fs_info->phone);
     
    293298        ipc_answer_1(rid, EOK, (ipcarg_t) fs_info->fs_handle);
    294299       
     300        fibril_dec_sercount();
    295301        futex_up(&fs_head_futex);
    296302       
Note: See TracChangeset for help on using the changeset viewer.