Changeset 92dd5c8 in mainline for uspace/srv/fs/minixfs/mfs_super.c


Ignore:
Timestamp:
2011-03-13T20:14:29Z (14 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
245eb02d
Parents:
ccbc5b56
Message:

Read superblock and look for a corrispondent magic number, fix first data zone calculation in mkminix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/minixfs/mfs_super.c

    rccbc5b56 r92dd5c8  
    3232
    3333#include <libfs.h>
     34#include <stdio.h>
    3435#include <stdlib.h>
    3536#include <libblock.h>
     
    4748        devmap_handle_t devmap_handle = (devmap_handle_t) IPC_GET_ARG1(*request);
    4849        enum cache_mode cmode; 
    49         struct mfs3_superblock *sp;
     50        struct mfs_superblock *sp;
    5051        bool native, longnames;
    5152        mfs_version_t version;
     
    5657       
    5758        if (rc != EOK) {
     59                mfsdebug("Can't accept async data write\n");
    5860                async_answer_0(rid, rc);
    5961                return;
     
    6971
    7072        /* initialize libblock */
    71         rc = block_init(devmap_handle, MFS_SUPERBLOCK_SIZE);
     73        rc = block_init(devmap_handle, 1024);
    7274        if (rc != EOK) {
     75                mfsdebug("libblock initialization failed\n");
    7376                async_answer_0(rid, rc);
    7477                return;
    7578        }
    7679
    77         /* prepare the superblock */
    78         rc = block_bb_read(devmap_handle, MFS_SUPERBLOCK);
     80        sp = malloc(MFS_SUPERBLOCK_SIZE);
     81
     82        /* Read the superblock */
     83        rc = block_read_direct(devmap_handle, MFS_SUPERBLOCK << 1, 1, sp);
    7984        if (rc != EOK) {
    8085                block_fini(devmap_handle);
     
    8388        }
    8489
    85         /* get the buffer with the superblock */
    86         sp = block_bb_get(devmap_handle);
    87 
    8890        if (!check_magic_number(sp->s_magic, &native, &version, &longnames)) {
    8991                /*Magic number is invalid!*/
     92                mfsdebug("magic number not recognized\n");
    9093                block_fini(devmap_handle);
    9194                async_answer_0(rid, ENOTSUP);
    9295                return;
    9396        }
     97
     98        mfsdebug("magic number recognized\n");
     99        free(sp);
    94100}
    95101
     
    98104{
    99105        *longfilenames = false;
     106
     107        mfsdebug("magic = %d\n", magic);
    100108
    101109        if (magic == MFS_MAGIC_V1 || magic == MFS_MAGIC_V1R) {
Note: See TracChangeset for help on using the changeset viewer.