Changeset 6ba36a0 in mainline for uspace/lib/ext4/src/superblock.c
- Timestamp:
- 2018-10-03T15:31:58Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9b0ceb1
- Parents:
- b209135
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ext4/src/superblock.c
rb209135 r6ba36a0 912 912 * @param sb Superblock 913 913 * @param name New name of the volume 914 */ 915 void ext4_superblock_set_volume_name(ext4_superblock_t *sb, const char *name) 916 { 917 memcpy(sb->volume_name, name, sizeof(sb->volume_name)); 914 * @return EOK on success or error code 915 */ 916 errno_t ext4_superblock_set_volume_name(ext4_superblock_t *sb, const char *name) 917 { 918 size_t off; 919 wchar_t ch; 920 size_t wi; 921 922 off = 0; 923 wi = 0; 924 while (wi < sizeof(sb->volume_name)) { 925 ch = str_decode(name, &off, STR_NO_LIMIT); 926 if (ch == 0) 927 break; 928 if (ch > 255) 929 return EINVAL; 930 931 sb->volume_name[wi++] = ch; 932 } 933 934 while (wi < sizeof(sb->volume_name)) 935 sb->volume_name[wi++] = '\0'; 936 937 return EOK; 918 938 } 919 939 … … 1475 1495 * @param dev_bsize Device block size 1476 1496 * @param dev_bcnt Device number of blocks 1477 * @param ver Filesystem version1497 * @param cfg Configuration of new file system 1478 1498 * @param rsb Place to store pointer to newly allocated superblock 1479 1499 * @return EOK on success or error code 1480 1500 */ 1481 1501 errno_t ext4_superblock_create(size_t dev_bsize, uint64_t dev_bcnt, 1482 ext4_cfg_ ver_t ver, ext4_superblock_t **rsb)1502 ext4_cfg_t *cfg, ext4_superblock_t **rsb) 1483 1503 { 1484 1504 ext4_superblock_t *sb; … … 1579 1599 ext4_superblock_set_check_interval(sb, 0); 1580 1600 ext4_superblock_set_creator_os(sb, EXT4_SUPERBLOCK_OS_LINUX); 1581 if ( ver>= extver_ext2)1601 if (cfg->version >= extver_ext2) 1582 1602 ext4_superblock_set_rev_level(sb, EXT4_DYNAMIC_REV); 1583 1603 else … … 1586 1606 ext4_superblock_set_def_resgid(sb, 0); 1587 1607 1588 if ( ver>= extver_ext2) {1608 if (cfg->version >= extver_ext2) { 1589 1609 /* Dynamic rev */ 1590 1610 ext4_superblock_set_first_inode(sb, EXT4_REV0_FIRST_INO); … … 1596 1616 1597 1617 ext4_superblock_set_uuid(sb, &uuid); 1598 /* 16-byte Latin-1 string padded with null characters */ 1599 ext4_superblock_set_volume_name(sb, "HelenOS-Ext4\0\0\0\0"); 1618 1619 rc = ext4_superblock_set_volume_name(sb, cfg->volume_name); 1620 if (rc != EOK) 1621 goto error; 1622 1600 1623 /* 64-byte Latin-1 string padded with null characters */ 1601 1624 ext4_superblock_set_last_mounted(sb,
Note:
See TracChangeset
for help on using the changeset viewer.