Lines Matching refs:sup
77 struct ubifs_sb_node *sup;
163 sup = kzalloc(ALIGN(UBIFS_SB_NODE_SZ, c->min_io_size), GFP_KERNEL);
170 if (!sup || !mst || !idx || !ino || !cs) {
185 sup->hash_algo = cpu_to_le16(c->auth_hash_algo);
186 err = ubifs_hmac_wkm(c, sup->hmac_wkm);
190 sup->hash_algo = cpu_to_le16(0xffff);
193 sup->ch.node_type = UBIFS_SB_NODE;
194 sup->key_hash = UBIFS_KEY_HASH_R5;
195 sup->flags = cpu_to_le32(sup_flags);
196 sup->min_io_size = cpu_to_le32(c->min_io_size);
197 sup->leb_size = cpu_to_le32(c->leb_size);
198 sup->leb_cnt = cpu_to_le32(c->leb_cnt);
199 sup->max_leb_cnt = cpu_to_le32(c->max_leb_cnt);
200 sup->max_bud_bytes = cpu_to_le64(tmp64);
201 sup->log_lebs = cpu_to_le32(log_lebs);
202 sup->lpt_lebs = cpu_to_le32(lpt_lebs);
203 sup->orph_lebs = cpu_to_le32(orph_lebs);
204 sup->jhead_cnt = cpu_to_le32(DEFAULT_JHEADS_CNT);
205 sup->fanout = cpu_to_le32(DEFAULT_FANOUT);
206 sup->lsave_cnt = cpu_to_le32(c->lsave_cnt);
207 sup->fmt_version = cpu_to_le32(ubifs_default_version);
208 sup->time_gran = cpu_to_le32(DEFAULT_TIME_GRAN);
210 sup->default_compr = cpu_to_le16(c->mount_opts.compr_type);
212 sup->default_compr = cpu_to_le16(get_default_compressor(c));
214 generate_random_uuid(sup->uuid);
220 sup->rp_size = cpu_to_le64(tmp64);
221 sup->ro_compat_version = cpu_to_le32(UBIFS_RO_COMPAT_VERSION);
322 err = ubifs_write_node_hmac(c, sup, UBIFS_SB_NODE_SZ, 0, 0,
360 kfree(sup);
372 * @sup: superblock node
374 * This function validates superblock node @sup. Since most of data was read
379 static int validate_sb(struct ubifs_info *c, struct ubifs_sb_node *sup)
389 if (sup->key_fmt != UBIFS_SIMPLE_KEY_FMT) {
394 if (le32_to_cpu(sup->min_io_size) != c->min_io_size) {
396 le32_to_cpu(sup->min_io_size), c->min_io_size);
400 if (le32_to_cpu(sup->leb_size) != c->leb_size) {
402 le32_to_cpu(sup->leb_size), c->leb_size);
489 if (le32_to_cpu(sup->time_gran) > 1000000000 ||
490 le32_to_cpu(sup->time_gran) < 1) {
509 ubifs_dump_node(c, sup, ALIGN(UBIFS_SB_NODE_SZ, c->min_io_size));
523 struct ubifs_sb_node *sup;
526 sup = kmalloc(ALIGN(UBIFS_SB_NODE_SZ, c->min_io_size), GFP_NOFS);
527 if (!sup)
530 err = ubifs_read_node(c, sup, UBIFS_SB_NODE, UBIFS_SB_NODE_SZ,
533 kfree(sup);
537 return sup;
541 const struct ubifs_sb_node *sup)
543 unsigned int sup_flags = le32_to_cpu(sup->flags);
568 hash_algo = le16_to_cpu(sup->hash_algo);
587 if (ubifs_hmac_zero(c, sup->hmac)) {
588 err = ubifs_sb_verify_signature(c, sup);
593 if (ubifs_check_hmac(c, hmac_wkm, sup->hmac_wkm)) {
597 err = ubifs_node_verify_hmac(c, sup, sizeof(*sup),
611 * @sup: superblock node read with 'ubifs_read_sb_node()'
615 int ubifs_write_sb_node(struct ubifs_info *c, struct ubifs_sb_node *sup)
620 err = ubifs_prepare_node_hmac(c, sup, UBIFS_SB_NODE_SZ,
625 return ubifs_leb_change(c, UBIFS_SB_LNUM, sup, len);
639 struct ubifs_sb_node *sup;
647 sup = ubifs_read_sb_node(c);
648 if (IS_ERR(sup))
649 return PTR_ERR(sup);
651 c->sup_node = sup;
653 c->fmt_version = le32_to_cpu(sup->fmt_version);
654 c->ro_compat_version = le32_to_cpu(sup->ro_compat_version);
691 switch (sup->key_hash) {
703 c->key_fmt = sup->key_fmt;
715 c->leb_cnt = le32_to_cpu(sup->leb_cnt);
716 c->max_leb_cnt = le32_to_cpu(sup->max_leb_cnt);
717 c->max_bud_bytes = le64_to_cpu(sup->max_bud_bytes);
718 c->log_lebs = le32_to_cpu(sup->log_lebs);
719 c->lpt_lebs = le32_to_cpu(sup->lpt_lebs);
720 c->orph_lebs = le32_to_cpu(sup->orph_lebs);
721 c->jhead_cnt = le32_to_cpu(sup->jhead_cnt) + NONDATA_JHEADS_CNT;
722 c->fanout = le32_to_cpu(sup->fanout);
723 c->lsave_cnt = le32_to_cpu(sup->lsave_cnt);
724 c->rp_size = le64_to_cpu(sup->rp_size);
725 c->rp_uid = make_kuid(&init_user_ns, le32_to_cpu(sup->rp_uid));
726 c->rp_gid = make_kgid(&init_user_ns, le32_to_cpu(sup->rp_gid));
727 sup_flags = le32_to_cpu(sup->flags);
729 c->default_compr = le16_to_cpu(sup->default_compr);
731 c->vfs_sb->s_time_gran = le32_to_cpu(sup->time_gran);
732 memcpy(&c->uuid, &sup->uuid, 16);
738 err = authenticate_sb_node(c, sup);
761 sup->leb_cnt = cpu_to_le32(c->leb_cnt);
779 err = validate_sb(c, sup);
909 struct ubifs_sb_node *sup = c->sup_node;
922 sup->flags &= cpu_to_le32(~UBIFS_FLG_SPACE_FIXUP);
933 struct ubifs_sb_node *sup = c->sup_node;
949 sup->flags |= cpu_to_le32(UBIFS_FLG_ENCRYPTION);
951 err = ubifs_write_sb_node(c, sup);