Lines Matching refs:f
452 struct jffs2_inode_info *f, in jffs2_build_inode_fragtree() argument
518 ret = jffs2_add_full_dnode_to_inode(c, f, this->fn); in jffs2_build_inode_fragtree()
965 static int jffs2_get_inode_nodes(struct jffs2_sb_info *c, struct jffs2_inode_info *f, in jffs2_get_inode_nodes() argument
976 dbg_readinode("ino #%u\n", f->inocache->ino); in jffs2_get_inode_nodes()
986 valid_ref = jffs2_first_valid_node(f->inocache->nodes); in jffs2_get_inode_nodes()
987 if (!valid_ref && f->inocache->ino != 1) in jffs2_get_inode_nodes()
988 JFFS2_WARNING("Eep. No valid nodes for ino #%u.\n", f->inocache->ino); in jffs2_get_inode_nodes()
1114 f->highest_version = rii->highest_version; in jffs2_get_inode_nodes()
1117 f->inocache->ino, rii->highest_version, rii->latest_mctime, in jffs2_get_inode_nodes()
1130 struct jffs2_inode_info *f, in jffs2_do_read_inode_internal() argument
1138 dbg_readinode("ino #%u pino/nlink is %d\n", f->inocache->ino, in jffs2_do_read_inode_internal()
1139 f->inocache->pino_nlink); in jffs2_do_read_inode_internal()
1144 ret = jffs2_get_inode_nodes(c, f, &rii); in jffs2_do_read_inode_internal()
1147 JFFS2_ERROR("cannot read nodes for ino %u, returned error is %d\n", f->inocache->ino, ret); in jffs2_do_read_inode_internal()
1148 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1149 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CHECKEDABSENT); in jffs2_do_read_inode_internal()
1153 ret = jffs2_build_inode_fragtree(c, f, &rii); in jffs2_do_read_inode_internal()
1156 f->inocache->ino, ret); in jffs2_do_read_inode_internal()
1157 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1158 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CHECKEDABSENT); in jffs2_do_read_inode_internal()
1171 f->metadata = rii.mdata_tn->fn; in jffs2_do_read_inode_internal()
1179 f->dents = rii.fds; in jffs2_do_read_inode_internal()
1181 jffs2_dbg_fragtree_paranoia_check_nolock(f); in jffs2_do_read_inode_internal()
1185 if (f->inocache->ino != 1) { in jffs2_do_read_inode_internal()
1186 JFFS2_WARNING("no data nodes found for ino #%u\n", f->inocache->ino); in jffs2_do_read_inode_internal()
1188 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1189 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CHECKEDABSENT); in jffs2_do_read_inode_internal()
1200 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1201 jffs2_set_inocache_state(c, f->inocache, INO_STATE_PRESENT); in jffs2_do_read_inode_internal()
1216 f->inocache->ino, ref_offset(rii.latest_ref)); in jffs2_do_read_inode_internal()
1232 new_size = jffs2_truncate_fragtree(c, &f->fragtree, je32_to_cpu(latest_node->isize)); in jffs2_do_read_inode_internal()
1235 f->inocache->ino, je32_to_cpu(latest_node->isize), new_size); in jffs2_do_read_inode_internal()
1248 if (f->inocache->state != INO_STATE_CHECKING) { in jffs2_do_read_inode_internal()
1255 f->target = kmalloc(csize + 1, GFP_KERNEL); in jffs2_do_read_inode_internal()
1256 if (!f->target) { in jffs2_do_read_inode_internal()
1262 csize, &retlen, (char *)f->target); in jffs2_do_read_inode_internal()
1267 kfree(f->target); in jffs2_do_read_inode_internal()
1268 f->target = NULL; in jffs2_do_read_inode_internal()
1272 f->target[csize] = '\0'; in jffs2_do_read_inode_internal()
1273 dbg_readinode("symlink's target '%s' cached\n", f->target); in jffs2_do_read_inode_internal()
1282 if (f->metadata) { in jffs2_do_read_inode_internal()
1284 f->inocache->ino, jemode_to_cpu(latest_node->mode)); in jffs2_do_read_inode_internal()
1287 if (!frag_first(&f->fragtree)) { in jffs2_do_read_inode_internal()
1289 f->inocache->ino, jemode_to_cpu(latest_node->mode)); in jffs2_do_read_inode_internal()
1293 if (frag_next(frag_first(&f->fragtree))) { in jffs2_do_read_inode_internal()
1295 f->inocache->ino, jemode_to_cpu(latest_node->mode)); in jffs2_do_read_inode_internal()
1300 f->metadata = frag_first(&f->fragtree)->node; in jffs2_do_read_inode_internal()
1301 jffs2_free_node_frag(frag_first(&f->fragtree)); in jffs2_do_read_inode_internal()
1302 f->fragtree = RB_ROOT; in jffs2_do_read_inode_internal()
1305 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1306 jffs2_set_inocache_state(c, f->inocache, INO_STATE_PRESENT); in jffs2_do_read_inode_internal()
1312 int jffs2_do_read_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f, in jffs2_do_read_inode() argument
1319 f->inocache = jffs2_get_ino_cache(c, ino); in jffs2_do_read_inode()
1321 if (f->inocache) { in jffs2_do_read_inode()
1323 switch(f->inocache->state) { in jffs2_do_read_inode()
1326 f->inocache->state = INO_STATE_READING; in jffs2_do_read_inode()
1334 dbg_readinode("waiting for ino #%u in state %d\n", ino, f->inocache->state); in jffs2_do_read_inode()
1343 …JFFS2_ERROR("Eep. Trying to read_inode #%u when it's already in state %d!\n", ino, f->inocache->st… in jffs2_do_read_inode()
1345 f->inocache = NULL; in jffs2_do_read_inode()
1354 if (!f->inocache && ino == 1) { in jffs2_do_read_inode()
1356 f->inocache = jffs2_alloc_inode_cache(); in jffs2_do_read_inode()
1357 if (!f->inocache) { in jffs2_do_read_inode()
1362 memset(f->inocache, 0, sizeof(struct jffs2_inode_cache)); in jffs2_do_read_inode()
1363 f->inocache->ino = f->inocache->pino_nlink = 1; in jffs2_do_read_inode()
1364 f->inocache->nodes = (struct jffs2_raw_node_ref *)f->inocache; in jffs2_do_read_inode()
1365 f->inocache->state = INO_STATE_READING; in jffs2_do_read_inode()
1366 jffs2_add_ino_cache(c, f->inocache); in jffs2_do_read_inode()
1368 if (!f->inocache) { in jffs2_do_read_inode()
1373 return jffs2_do_read_inode_internal(c, f, latest_node); in jffs2_do_read_inode()
1379 struct jffs2_inode_info *f = kzalloc(sizeof(*f), GFP_KERNEL); in jffs2_do_crccheck_inode() local
1382 if (!f) in jffs2_do_crccheck_inode()
1385 mutex_init(&f->sem); in jffs2_do_crccheck_inode()
1386 mutex_lock(&f->sem); in jffs2_do_crccheck_inode()
1387 f->inocache = ic; in jffs2_do_crccheck_inode()
1389 ret = jffs2_do_read_inode_internal(c, f, &n); in jffs2_do_crccheck_inode()
1390 mutex_unlock(&f->sem); in jffs2_do_crccheck_inode()
1391 jffs2_do_clear_inode(c, f); in jffs2_do_crccheck_inode()
1393 kfree (f); in jffs2_do_crccheck_inode()
1397 void jffs2_do_clear_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f) in jffs2_do_clear_inode() argument
1402 jffs2_xattr_delete_inode(c, f->inocache); in jffs2_do_clear_inode()
1403 mutex_lock(&f->sem); in jffs2_do_clear_inode()
1404 deleted = f->inocache && !f->inocache->pino_nlink; in jffs2_do_clear_inode()
1406 if (f->inocache && f->inocache->state != INO_STATE_CHECKING) in jffs2_do_clear_inode()
1407 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CLEARING); in jffs2_do_clear_inode()
1409 if (f->metadata) { in jffs2_do_clear_inode()
1411 jffs2_mark_node_obsolete(c, f->metadata->raw); in jffs2_do_clear_inode()
1412 jffs2_free_full_dnode(f->metadata); in jffs2_do_clear_inode()
1415 jffs2_kill_fragtree(&f->fragtree, deleted?c:NULL); in jffs2_do_clear_inode()
1417 if (f->target) { in jffs2_do_clear_inode()
1418 kfree(f->target); in jffs2_do_clear_inode()
1419 f->target = NULL; in jffs2_do_clear_inode()
1422 fds = f->dents; in jffs2_do_clear_inode()
1429 if (f->inocache && f->inocache->state != INO_STATE_CHECKING) { in jffs2_do_clear_inode()
1430 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CHECKEDABSENT); in jffs2_do_clear_inode()
1431 if (f->inocache->nodes == (void *)f->inocache) in jffs2_do_clear_inode()
1432 jffs2_del_ino_cache(c, f->inocache); in jffs2_do_clear_inode()
1435 mutex_unlock(&f->sem); in jffs2_do_clear_inode()