mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
UBIFS: share the next_log_lnum helper
We'll need to use the 'next_log_lnum()' helper function from log.c in the fixup code, so let's move it to misc.h. IOW, this is a preparation to the following free space fixup changes. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
This commit is contained in:
parent
91c66083fc
commit
e11602ea3e
@ -99,20 +99,6 @@ struct ubifs_wbuf *ubifs_get_wbuf(struct ubifs_info *c, int lnum)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* next_log_lnum - switch to the next log LEB.
|
||||
* @c: UBIFS file-system description object
|
||||
* @lnum: current log LEB
|
||||
*/
|
||||
static inline int next_log_lnum(const struct ubifs_info *c, int lnum)
|
||||
{
|
||||
lnum += 1;
|
||||
if (lnum > c->log_last)
|
||||
lnum = UBIFS_LOG_LNUM;
|
||||
|
||||
return lnum;
|
||||
}
|
||||
|
||||
/**
|
||||
* empty_log_bytes - calculate amount of empty space in the log.
|
||||
* @c: UBIFS file-system description object
|
||||
@ -257,7 +243,7 @@ int ubifs_add_bud_to_log(struct ubifs_info *c, int jhead, int lnum, int offs)
|
||||
ref->jhead = cpu_to_le32(jhead);
|
||||
|
||||
if (c->lhead_offs > c->leb_size - c->ref_node_alsz) {
|
||||
c->lhead_lnum = next_log_lnum(c, c->lhead_lnum);
|
||||
c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum);
|
||||
c->lhead_offs = 0;
|
||||
}
|
||||
|
||||
@ -425,7 +411,7 @@ int ubifs_log_start_commit(struct ubifs_info *c, int *ltail_lnum)
|
||||
|
||||
/* Switch to the next log LEB */
|
||||
if (c->lhead_offs) {
|
||||
c->lhead_lnum = next_log_lnum(c, c->lhead_lnum);
|
||||
c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum);
|
||||
c->lhead_offs = 0;
|
||||
}
|
||||
|
||||
@ -446,7 +432,7 @@ int ubifs_log_start_commit(struct ubifs_info *c, int *ltail_lnum)
|
||||
|
||||
c->lhead_offs += len;
|
||||
if (c->lhead_offs == c->leb_size) {
|
||||
c->lhead_lnum = next_log_lnum(c, c->lhead_lnum);
|
||||
c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum);
|
||||
c->lhead_offs = 0;
|
||||
}
|
||||
|
||||
@ -533,7 +519,7 @@ int ubifs_log_post_commit(struct ubifs_info *c, int old_ltail_lnum)
|
||||
}
|
||||
mutex_lock(&c->log_mutex);
|
||||
for (lnum = old_ltail_lnum; lnum != c->ltail_lnum;
|
||||
lnum = next_log_lnum(c, lnum)) {
|
||||
lnum = ubifs_next_log_lnum(c, lnum)) {
|
||||
dbg_log("unmap log LEB %d", lnum);
|
||||
err = ubifs_leb_unmap(c, lnum);
|
||||
if (err)
|
||||
@ -642,7 +628,7 @@ static int add_node(struct ubifs_info *c, void *buf, int *lnum, int *offs,
|
||||
err = ubifs_leb_change(c, *lnum, buf, sz, UBI_SHORTTERM);
|
||||
if (err)
|
||||
return err;
|
||||
*lnum = next_log_lnum(c, *lnum);
|
||||
*lnum = ubifs_next_log_lnum(c, *lnum);
|
||||
*offs = 0;
|
||||
}
|
||||
memcpy(buf + *offs, node, len);
|
||||
@ -712,7 +698,7 @@ int ubifs_consolidate_log(struct ubifs_info *c)
|
||||
ubifs_scan_destroy(sleb);
|
||||
if (lnum == c->lhead_lnum)
|
||||
break;
|
||||
lnum = next_log_lnum(c, lnum);
|
||||
lnum = ubifs_next_log_lnum(c, lnum);
|
||||
}
|
||||
if (offs) {
|
||||
int sz = ALIGN(offs, c->min_io_size);
|
||||
@ -732,7 +718,7 @@ int ubifs_consolidate_log(struct ubifs_info *c)
|
||||
/* Unmap remaining LEBs */
|
||||
lnum = write_lnum;
|
||||
do {
|
||||
lnum = next_log_lnum(c, lnum);
|
||||
lnum = ubifs_next_log_lnum(c, lnum);
|
||||
err = ubifs_leb_unmap(c, lnum);
|
||||
if (err)
|
||||
return err;
|
||||
|
@ -340,4 +340,21 @@ static inline void ubifs_release_lprops(struct ubifs_info *c)
|
||||
mutex_unlock(&c->lp_mutex);
|
||||
}
|
||||
|
||||
/**
|
||||
* ubifs_next_log_lnum - switch to the next log LEB.
|
||||
* @c: UBIFS file-system description object
|
||||
* @lnum: current log LEB
|
||||
*
|
||||
* This helper function returns the log LEB number which goes next after LEB
|
||||
* 'lnum'.
|
||||
*/
|
||||
static inline int ubifs_next_log_lnum(const struct ubifs_info *c, int lnum)
|
||||
{
|
||||
lnum += 1;
|
||||
if (lnum > c->log_last)
|
||||
lnum = UBIFS_LOG_LNUM;
|
||||
|
||||
return lnum;
|
||||
}
|
||||
|
||||
#endif /* __UBIFS_MISC_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user