Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/mfs/mfs_ops.c

    r1ba6651 r5930e3f  
    6464static int mfs_check_sanity(struct mfs_sb_info *sbi);
    6565static bool is_power_of_two(uint32_t n);
     66static long mfs_size_block(service_id_t service_id);
    6667
    6768static hash_table_t open_nodes;
     
    8485        .destroy = mfs_destroy_node,
    8586        .has_children = mfs_has_children,
    86         .lnkcnt_get = mfs_lnkcnt_get
     87        .lnkcnt_get = mfs_lnkcnt_get,
     88        .size_block = mfs_size_block
    8789};
    8890
    8991/* Hash table interface for open nodes hash table */
     92
    9093typedef struct {
    9194        service_id_t service_id;
     
    189192                /* This is a V1 or V2 Minix filesystem */
    190193                magic = sb->s_magic;
    191         } else if (check_magic_number(sb3->s_magic, &native,
    192             &version, &longnames)) {
     194        } else if (check_magic_number(sb3->s_magic, &native, &version, &longnames)) {
    193195                /* This is a V3 Minix filesystem */
    194196                magic = sb3->s_magic;
     
    345347        uint32_t inum;
    346348
     349        mfsdebug("%s()\n", __FUNCTION__);
     350
    347351        r = mfs_instance_get(service_id, &inst);
    348352        if (r != EOK)
     
    377381                ino_i->i_mode = S_IFDIR;
    378382                ino_i->i_nlinks = 1; /* This accounts for the '.' dentry */
    379         } else {
     383        } else
    380384                ino_i->i_mode = S_IFREG;
    381                 ino_i->i_nlinks = 0;
    382         }
    383385
    384386        ino_i->i_uid = 0;
     
    419421        free(ino_i);
    420422out_err:
    421         mfs_free_inode(inst, inum);
    422423        return r;
    423424}
     
    430431        struct mfs_dentry_info d_info;
    431432        int r;
     433
     434        mfsdebug("%s()\n", __FUNCTION__);
    432435
    433436        if (!S_ISDIR(ino_i->i_mode))
     
    477480        struct mfs_instance *instance;
    478481
     482        mfsdebug("%s()\n", __FUNCTION__);
     483
    479484        rc = mfs_instance_get(service_id, &instance);
    480485        if (rc != EOK)
     
    489494        int rc = EOK;
    490495        struct mfs_node *mnode = fsnode->data;
     496
     497        mfsdebug("%s()\n", __FUNCTION__);
    491498
    492499        fibril_mutex_lock(&open_nodes_lock);
     
    549556        int rc;
    550557
     558        mfsdebug("%s()\n", __FUNCTION__);
     559
    551560        fibril_mutex_lock(&open_nodes_lock);
    552561
     
    561570        if (already_open) {
    562571                mnode = hash_table_get_inst(already_open, struct mfs_node, link);
    563 
    564572                *rfn = mnode->fsnode;
    565573                mnode->refcnt++;
     
    642650        struct mfs_sb_info *sbi = parent->instance->sbi;
    643651        bool destroy_dentry = false;
     652
     653        mfsdebug("%s()\n", __FUNCTION__);
    644654
    645655        if (str_size(name) > sbi->max_name_len)
     
    665675                r = mfs_insert_dentry(child, "..", parent->ino_i->index);
    666676                if (r != EOK) {
    667                         mfs_remove_dentry(child, ".");
    668677                        destroy_dentry = true;
    669678                        goto exit;
     
    693702        bool has_children;
    694703        int r;
     704
     705        mfsdebug("%s()\n", __FUNCTION__);
    695706
    696707        if (!parent)
     
    915926               
    916927                r = mfs_write_map(mnode, pos, block, &dummy);
    917                 if (r != EOK) {
    918                         mfs_free_zone(mnode->instance, block);
     928                if (r != EOK)
    919929                        goto out_err;
    920                 }
    921930
    922931                flags = BLOCK_FLAGS_NOREAD;
     
    958967mfs_destroy(service_id_t service_id, fs_index_t index)
    959968{
    960         fs_node_t *fn = NULL;
     969        fs_node_t *fn;
    961970        int r;
    962971
     
    11291138}
    11301139
     1140static long
     1141mfs_size_block(service_id_t service_id)
     1142{
     1143        long block_size;
     1144
     1145        struct mfs_instance *inst;
     1146        int rc = mfs_instance_get(service_id, &inst);
     1147        if (rc != EOK)
     1148                return rc;
     1149        if (NULL == inst)
     1150                return ENOENT;
     1151        block_size = inst->sbi->block_size;
     1152        return block_size;
     1153}
     1154
    11311155vfs_out_ops_t mfs_ops = {
    11321156        .mounted = mfs_mounted,
Note: See TracChangeset for help on using the changeset viewer.