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()
981 static int jffs2_get_inode_nodes(struct jffs2_sb_info *c, struct jffs2_inode_info *f, in jffs2_get_inode_nodes() argument
992 dbg_readinode("ino #%u\n", f->inocache->ino); in jffs2_get_inode_nodes()
1002 valid_ref = jffs2_first_valid_node(f->inocache->nodes); in jffs2_get_inode_nodes()
1003 if (!valid_ref && f->inocache->ino != 1) in jffs2_get_inode_nodes()
1004 JFFS2_WARNING("Eep. No valid nodes for ino #%u.\n", f->inocache->ino); in jffs2_get_inode_nodes()
1130 f->highest_version = rii->highest_version; in jffs2_get_inode_nodes()
1133 f->inocache->ino, rii->highest_version, rii->latest_mctime, in jffs2_get_inode_nodes()
1146 struct jffs2_inode_info *f, in jffs2_do_read_inode_internal() argument
1154 dbg_readinode("ino #%u pino/nlink is %d\n", f->inocache->ino, in jffs2_do_read_inode_internal()
1155 f->inocache->pino_nlink); in jffs2_do_read_inode_internal()
1160 ret = jffs2_get_inode_nodes(c, f, &rii); in jffs2_do_read_inode_internal()
1163 JFFS2_ERROR("cannot read nodes for ino %u, returned error is %d\n", f->inocache->ino, ret); in jffs2_do_read_inode_internal()
1164 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1165 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CHECKEDABSENT); in jffs2_do_read_inode_internal()
1169 ret = jffs2_build_inode_fragtree(c, f, &rii); in jffs2_do_read_inode_internal()
1172 f->inocache->ino, ret); in jffs2_do_read_inode_internal()
1173 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1174 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CHECKEDABSENT); in jffs2_do_read_inode_internal()
1187 f->metadata = rii.mdata_tn->fn; in jffs2_do_read_inode_internal()
1195 f->dents = rii.fds; in jffs2_do_read_inode_internal()
1197 jffs2_dbg_fragtree_paranoia_check_nolock(f); in jffs2_do_read_inode_internal()
1201 if (f->inocache->ino != 1) { in jffs2_do_read_inode_internal()
1202 JFFS2_WARNING("no data nodes found for ino #%u\n", f->inocache->ino); in jffs2_do_read_inode_internal()
1204 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1205 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CHECKEDABSENT); in jffs2_do_read_inode_internal()
1216 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1217 jffs2_set_inocache_state(c, f->inocache, INO_STATE_PRESENT); in jffs2_do_read_inode_internal()
1232 f->inocache->ino, ref_offset(rii.latest_ref)); in jffs2_do_read_inode_internal()
1248 new_size = jffs2_truncate_fragtree(c, &f->fragtree, je32_to_cpu(latest_node->isize)); in jffs2_do_read_inode_internal()
1251 f->inocache->ino, je32_to_cpu(latest_node->isize), new_size); in jffs2_do_read_inode_internal()
1264 if (f->inocache->state != INO_STATE_CHECKING) { in jffs2_do_read_inode_internal()
1271 f->target = kmalloc(csize + 1, GFP_KERNEL); in jffs2_do_read_inode_internal()
1272 if (!f->target) { in jffs2_do_read_inode_internal()
1278 csize, &retlen, (char *)f->target); in jffs2_do_read_inode_internal()
1283 kfree(f->target); in jffs2_do_read_inode_internal()
1284 f->target = NULL; in jffs2_do_read_inode_internal()
1288 f->target[csize] = '\0'; in jffs2_do_read_inode_internal()
1289 dbg_readinode("symlink's target '%s' cached\n", f->target); in jffs2_do_read_inode_internal()
1298 if (f->metadata) { in jffs2_do_read_inode_internal()
1300 f->inocache->ino, jemode_to_cpu(latest_node->mode)); in jffs2_do_read_inode_internal()
1303 if (!frag_first(&f->fragtree)) { in jffs2_do_read_inode_internal()
1305 f->inocache->ino, jemode_to_cpu(latest_node->mode)); in jffs2_do_read_inode_internal()
1309 if (frag_next(frag_first(&f->fragtree))) { in jffs2_do_read_inode_internal()
1311 f->inocache->ino, jemode_to_cpu(latest_node->mode)); in jffs2_do_read_inode_internal()
1316 f->metadata = frag_first(&f->fragtree)->node; in jffs2_do_read_inode_internal()
1317 jffs2_free_node_frag(frag_first(&f->fragtree)); in jffs2_do_read_inode_internal()
1318 f->fragtree = RB_ROOT; in jffs2_do_read_inode_internal()
1321 if (f->inocache->state == INO_STATE_READING) in jffs2_do_read_inode_internal()
1322 jffs2_set_inocache_state(c, f->inocache, INO_STATE_PRESENT); in jffs2_do_read_inode_internal()
1328 int jffs2_do_read_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f, in jffs2_do_read_inode() argument
1335 f->inocache = jffs2_get_ino_cache(c, ino); in jffs2_do_read_inode()
1337 if (f->inocache) { in jffs2_do_read_inode()
1339 switch(f->inocache->state) { in jffs2_do_read_inode()
1342 f->inocache->state = INO_STATE_READING; in jffs2_do_read_inode()
1350 dbg_readinode("waiting for ino #%u in state %d\n", ino, f->inocache->state); in jffs2_do_read_inode()
1359 …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()
1361 f->inocache = NULL; in jffs2_do_read_inode()
1370 if (!f->inocache && ino == 1) { in jffs2_do_read_inode()
1372 f->inocache = jffs2_alloc_inode_cache(); in jffs2_do_read_inode()
1373 if (!f->inocache) { in jffs2_do_read_inode()
1378 memset(f->inocache, 0, sizeof(struct jffs2_inode_cache)); in jffs2_do_read_inode()
1379 f->inocache->ino = f->inocache->pino_nlink = 1; in jffs2_do_read_inode()
1380 f->inocache->nodes = (struct jffs2_raw_node_ref *)f->inocache; in jffs2_do_read_inode()
1381 f->inocache->state = INO_STATE_READING; in jffs2_do_read_inode()
1382 jffs2_add_ino_cache(c, f->inocache); in jffs2_do_read_inode()
1384 if (!f->inocache) { in jffs2_do_read_inode()
1389 return jffs2_do_read_inode_internal(c, f, latest_node); in jffs2_do_read_inode()
1395 struct jffs2_inode_info *f = kzalloc(sizeof(*f), GFP_KERNEL); in jffs2_do_crccheck_inode() local
1398 if (!f) in jffs2_do_crccheck_inode()
1401 mutex_init(&f->sem); in jffs2_do_crccheck_inode()
1402 mutex_lock(&f->sem); in jffs2_do_crccheck_inode()
1403 f->inocache = ic; in jffs2_do_crccheck_inode()
1405 ret = jffs2_do_read_inode_internal(c, f, &n); in jffs2_do_crccheck_inode()
1406 mutex_unlock(&f->sem); in jffs2_do_crccheck_inode()
1407 jffs2_do_clear_inode(c, f); in jffs2_do_crccheck_inode()
1409 kfree (f); in jffs2_do_crccheck_inode()
1413 void jffs2_do_clear_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f) in jffs2_do_clear_inode() argument
1418 jffs2_xattr_delete_inode(c, f->inocache); in jffs2_do_clear_inode()
1419 mutex_lock(&f->sem); in jffs2_do_clear_inode()
1420 deleted = f->inocache && !f->inocache->pino_nlink; in jffs2_do_clear_inode()
1422 if (f->inocache && f->inocache->state != INO_STATE_CHECKING) in jffs2_do_clear_inode()
1423 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CLEARING); in jffs2_do_clear_inode()
1425 if (f->metadata) { in jffs2_do_clear_inode()
1427 jffs2_mark_node_obsolete(c, f->metadata->raw); in jffs2_do_clear_inode()
1428 jffs2_free_full_dnode(f->metadata); in jffs2_do_clear_inode()
1431 jffs2_kill_fragtree(&f->fragtree, deleted?c:NULL); in jffs2_do_clear_inode()
1433 fds = f->dents; in jffs2_do_clear_inode()
1440 if (f->inocache && f->inocache->state != INO_STATE_CHECKING) { in jffs2_do_clear_inode()
1441 jffs2_set_inocache_state(c, f->inocache, INO_STATE_CHECKEDABSENT); in jffs2_do_clear_inode()
1442 if (f->inocache->nodes == (void *)f->inocache) in jffs2_do_clear_inode()
1443 jffs2_del_ino_cache(c, f->inocache); in jffs2_do_clear_inode()
1446 mutex_unlock(&f->sem); in jffs2_do_clear_inode()