diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-05-06 10:52:32 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-05-16 07:12:12 -0400 |
commit | e11602ea3e43392904db7a579dc990062ebb7151 (patch) | |
tree | 3930553264a369773cc1f66aa33b790d17589a40 /fs/ubifs | |
parent | 91c66083fca36cdf496e927ef8bea19e6b1bbdce (diff) |
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>
Diffstat (limited to 'fs/ubifs')
-rw-r--r-- | fs/ubifs/log.c | 28 | ||||
-rw-r--r-- | fs/ubifs/misc.h | 17 |
2 files changed, 24 insertions, 21 deletions
diff --git a/fs/ubifs/log.c b/fs/ubifs/log.c index 40fa780ebea7..affea9494ae2 100644 --- a/fs/ubifs/log.c +++ b/fs/ubifs/log.c | |||
@@ -100,20 +100,6 @@ struct ubifs_wbuf *ubifs_get_wbuf(struct ubifs_info *c, int lnum) | |||
100 | } | 100 | } |
101 | 101 | ||
102 | /** | 102 | /** |
103 | * next_log_lnum - switch to the next log LEB. | ||
104 | * @c: UBIFS file-system description object | ||
105 | * @lnum: current log LEB | ||
106 | */ | ||
107 | static inline int next_log_lnum(const struct ubifs_info *c, int lnum) | ||
108 | { | ||
109 | lnum += 1; | ||
110 | if (lnum > c->log_last) | ||
111 | lnum = UBIFS_LOG_LNUM; | ||
112 | |||
113 | return lnum; | ||
114 | } | ||
115 | |||
116 | /** | ||
117 | * empty_log_bytes - calculate amount of empty space in the log. | 103 | * empty_log_bytes - calculate amount of empty space in the log. |
118 | * @c: UBIFS file-system description object | 104 | * @c: UBIFS file-system description object |
119 | */ | 105 | */ |
@@ -257,7 +243,7 @@ int ubifs_add_bud_to_log(struct ubifs_info *c, int jhead, int lnum, int offs) | |||
257 | ref->jhead = cpu_to_le32(jhead); | 243 | ref->jhead = cpu_to_le32(jhead); |
258 | 244 | ||
259 | if (c->lhead_offs > c->leb_size - c->ref_node_alsz) { | 245 | if (c->lhead_offs > c->leb_size - c->ref_node_alsz) { |
260 | c->lhead_lnum = next_log_lnum(c, c->lhead_lnum); | 246 | c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum); |
261 | c->lhead_offs = 0; | 247 | c->lhead_offs = 0; |
262 | } | 248 | } |
263 | 249 | ||
@@ -425,7 +411,7 @@ int ubifs_log_start_commit(struct ubifs_info *c, int *ltail_lnum) | |||
425 | 411 | ||
426 | /* Switch to the next log LEB */ | 412 | /* Switch to the next log LEB */ |
427 | if (c->lhead_offs) { | 413 | if (c->lhead_offs) { |
428 | c->lhead_lnum = next_log_lnum(c, c->lhead_lnum); | 414 | c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum); |
429 | c->lhead_offs = 0; | 415 | c->lhead_offs = 0; |
430 | } | 416 | } |
431 | 417 | ||
@@ -446,7 +432,7 @@ int ubifs_log_start_commit(struct ubifs_info *c, int *ltail_lnum) | |||
446 | 432 | ||
447 | c->lhead_offs += len; | 433 | c->lhead_offs += len; |
448 | if (c->lhead_offs == c->leb_size) { | 434 | if (c->lhead_offs == c->leb_size) { |
449 | c->lhead_lnum = next_log_lnum(c, c->lhead_lnum); | 435 | c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum); |
450 | c->lhead_offs = 0; | 436 | c->lhead_offs = 0; |
451 | } | 437 | } |
452 | 438 | ||
@@ -533,7 +519,7 @@ int ubifs_log_post_commit(struct ubifs_info *c, int old_ltail_lnum) | |||
533 | } | 519 | } |
534 | mutex_lock(&c->log_mutex); | 520 | mutex_lock(&c->log_mutex); |
535 | for (lnum = old_ltail_lnum; lnum != c->ltail_lnum; | 521 | for (lnum = old_ltail_lnum; lnum != c->ltail_lnum; |
536 | lnum = next_log_lnum(c, lnum)) { | 522 | lnum = ubifs_next_log_lnum(c, lnum)) { |
537 | dbg_log("unmap log LEB %d", lnum); | 523 | dbg_log("unmap log LEB %d", lnum); |
538 | err = ubifs_leb_unmap(c, lnum); | 524 | err = ubifs_leb_unmap(c, lnum); |
539 | if (err) | 525 | if (err) |
@@ -642,7 +628,7 @@ static int add_node(struct ubifs_info *c, void *buf, int *lnum, int *offs, | |||
642 | err = ubifs_leb_change(c, *lnum, buf, sz, UBI_SHORTTERM); | 628 | err = ubifs_leb_change(c, *lnum, buf, sz, UBI_SHORTTERM); |
643 | if (err) | 629 | if (err) |
644 | return err; | 630 | return err; |
645 | *lnum = next_log_lnum(c, *lnum); | 631 | *lnum = ubifs_next_log_lnum(c, *lnum); |
646 | *offs = 0; | 632 | *offs = 0; |
647 | } | 633 | } |
648 | memcpy(buf + *offs, node, len); | 634 | memcpy(buf + *offs, node, len); |
@@ -712,7 +698,7 @@ int ubifs_consolidate_log(struct ubifs_info *c) | |||
712 | ubifs_scan_destroy(sleb); | 698 | ubifs_scan_destroy(sleb); |
713 | if (lnum == c->lhead_lnum) | 699 | if (lnum == c->lhead_lnum) |
714 | break; | 700 | break; |
715 | lnum = next_log_lnum(c, lnum); | 701 | lnum = ubifs_next_log_lnum(c, lnum); |
716 | } | 702 | } |
717 | if (offs) { | 703 | if (offs) { |
718 | int sz = ALIGN(offs, c->min_io_size); | 704 | int sz = ALIGN(offs, c->min_io_size); |
@@ -732,7 +718,7 @@ int ubifs_consolidate_log(struct ubifs_info *c) | |||
732 | /* Unmap remaining LEBs */ | 718 | /* Unmap remaining LEBs */ |
733 | lnum = write_lnum; | 719 | lnum = write_lnum; |
734 | do { | 720 | do { |
735 | lnum = next_log_lnum(c, lnum); | 721 | lnum = ubifs_next_log_lnum(c, lnum); |
736 | err = ubifs_leb_unmap(c, lnum); | 722 | err = ubifs_leb_unmap(c, lnum); |
737 | if (err) | 723 | if (err) |
738 | return err; | 724 | return err; |
diff --git a/fs/ubifs/misc.h b/fs/ubifs/misc.h index c3de04dc952a..0b5296a9a4c5 100644 --- a/fs/ubifs/misc.h +++ b/fs/ubifs/misc.h | |||
@@ -340,4 +340,21 @@ static inline void ubifs_release_lprops(struct ubifs_info *c) | |||
340 | mutex_unlock(&c->lp_mutex); | 340 | mutex_unlock(&c->lp_mutex); |
341 | } | 341 | } |
342 | 342 | ||
343 | /** | ||
344 | * ubifs_next_log_lnum - switch to the next log LEB. | ||
345 | * @c: UBIFS file-system description object | ||
346 | * @lnum: current log LEB | ||
347 | * | ||
348 | * This helper function returns the log LEB number which goes next after LEB | ||
349 | * 'lnum'. | ||
350 | */ | ||
351 | static inline int ubifs_next_log_lnum(const struct ubifs_info *c, int lnum) | ||
352 | { | ||
353 | lnum += 1; | ||
354 | if (lnum > c->log_last) | ||
355 | lnum = UBIFS_LOG_LNUM; | ||
356 | |||
357 | return lnum; | ||
358 | } | ||
359 | |||
343 | #endif /* __UBIFS_MISC_H__ */ | 360 | #endif /* __UBIFS_MISC_H__ */ |