Commit 1a0b0699 authored by Artem Bityutskiy's avatar Artem Bityutskiy

UBIFS: introduce a "grouped" journal head flag

Journal heads are different in a way how UBIFS writes nodes there. All normal
journal heads receive grouped nodes, while the GC journal heads receives
ungrouped nodes. This patch adds a 'grouped' flag to 'struct ubifs_jhead' which
describes this property.

This patch is a preparation to a further recovery fix.
Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
parent ab75950b
...@@ -811,15 +811,18 @@ static int alloc_wbufs(struct ubifs_info *c) ...@@ -811,15 +811,18 @@ static int alloc_wbufs(struct ubifs_info *c)
c->jheads[i].wbuf.sync_callback = &bud_wbuf_callback; c->jheads[i].wbuf.sync_callback = &bud_wbuf_callback;
c->jheads[i].wbuf.jhead = i; c->jheads[i].wbuf.jhead = i;
c->jheads[i].grouped = 1;
} }
c->jheads[BASEHD].wbuf.dtype = UBI_SHORTTERM; c->jheads[BASEHD].wbuf.dtype = UBI_SHORTTERM;
/* /*
* Garbage Collector head likely contains long-term data and * Garbage Collector head likely contains long-term data and
* does not need to be synchronized by timer. * does not need to be synchronized by timer. Also GC head nodes are
* not grouped.
*/ */
c->jheads[GCHD].wbuf.dtype = UBI_LONGTERM; c->jheads[GCHD].wbuf.dtype = UBI_LONGTERM;
c->jheads[GCHD].wbuf.no_timer = 1; c->jheads[GCHD].wbuf.no_timer = 1;
c->jheads[GCHD].grouped = 0;
return 0; return 0;
} }
......
...@@ -722,12 +722,14 @@ struct ubifs_bud { ...@@ -722,12 +722,14 @@ struct ubifs_bud {
* struct ubifs_jhead - journal head. * struct ubifs_jhead - journal head.
* @wbuf: head's write-buffer * @wbuf: head's write-buffer
* @buds_list: list of bud LEBs belonging to this journal head * @buds_list: list of bud LEBs belonging to this journal head
* @grouped: non-zero if UBIFS groups nodes when writing to this journal head
* *
* Note, the @buds list is protected by the @c->buds_lock. * Note, the @buds list is protected by the @c->buds_lock.
*/ */
struct ubifs_jhead { struct ubifs_jhead {
struct ubifs_wbuf wbuf; struct ubifs_wbuf wbuf;
struct list_head buds_list; struct list_head buds_list;
unsigned int grouped:1;
}; };
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment