Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f2b6f49 authored by KaiGai Kohei's avatar KaiGai Kohei
Browse files

[JFFS2][XATTR] Remove 'struct list_head ilist' from jffs2_inode_cache.



This patch can reduce 4-byte of memory usage per inode_cache.

[4/10] jffs2-xattr-v5.1-04-remove_ilist_from_ic.patch

Signed-off-by: default avatarKaiGai Kohei <kaigai@ak.jp.nec.com>
parent 8b0b339d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -119,8 +119,8 @@ struct jffs2_sb_info {
#define XATTRINDEX_HASHSIZE	(57)
	uint32_t highest_xid;
	struct list_head xattrindex[XATTRINDEX_HASHSIZE];
	struct list_head xattr_temp;
	struct list_head xattr_unchecked;
	struct jffs2_xattr_ref *xref_temp;
	struct rw_semaphore xattr_sem;
	uint32_t xdatum_mem_usage;
	uint32_t xdatum_mem_threshold;
+0 −1
Original line number Diff line number Diff line
@@ -259,7 +259,6 @@ struct jffs2_xattr_ref *jffs2_alloc_xattr_ref(void)

	memset(ref, 0, sizeof(struct jffs2_xattr_ref));
	ref->class = RAWNODE_CLASS_XATTR_REF;
	INIT_LIST_HEAD(&ref->ilist);
	return ref;
}

+1 −1
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ struct jffs2_inode_cache {
	uint32_t ino;
	int nlink;
#ifdef CONFIG_JFFS2_FS_XATTR
	struct list_head ilist;
	struct jffs2_xattr_ref *xref;
#endif
};

+0 −1
Original line number Diff line number Diff line
@@ -902,7 +902,6 @@ int jffs2_do_read_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f,
		f->inocache->ino = f->inocache->nlink = 1;
		f->inocache->nodes = (struct jffs2_raw_node_ref *)f->inocache;
		f->inocache->state = INO_STATE_READING;
		init_xattr_inode_cache(f->inocache);
		jffs2_add_ino_cache(c, f->inocache);
	}
	if (!f->inocache) {
+3 −3
Original line number Diff line number Diff line
@@ -408,14 +408,15 @@ static int jffs2_scan_xref_node(struct jffs2_sb_info *c, struct jffs2_eraseblock
	 * ref->xid is used to store 32bit xid, xd is not used
	 * ref->ino is used to store 32bit inode-number, ic is not used
	 * Thoes variables are declared as union, thus using those
	 * are exclusive. In a similar way, ref->ilist is temporarily
	 * are exclusive. In a similar way, ref->next is temporarily
	 * used to chain all xattr_ref object. It's re-chained to
	 * jffs2_inode_cache in jffs2_build_xattr_subsystem() correctly.
	 */
	ref->node = raw;
	ref->ino = je32_to_cpu(rr->ino);
	ref->xid = je32_to_cpu(rr->xid);
	list_add_tail(&ref->ilist, &c->xattr_temp);
	ref->next = c->xref_temp;
	c->xref_temp = ref;

	raw->__totlen = PAD(je32_to_cpu(rr->totlen));
	raw->flash_offset = ofs | REF_PRISTINE;
@@ -888,7 +889,6 @@ struct jffs2_inode_cache *jffs2_scan_make_ino_cache(struct jffs2_sb_info *c, uin

	ic->ino = ino;
	ic->nodes = (void *)ic;
	init_xattr_inode_cache(ic);
	jffs2_add_ino_cache(c, ic);
	if (ino == 1)
		ic->nlink = 1;
Loading