Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 130863
b: refs/heads/master
c: b466f17
h: refs/heads/master
i:
  130861: df62870
  130859: 9a20f33
  130855: 638bb7b
  130847: 030652b
v: v3
  • Loading branch information
Adrian Hunter authored and Artem Bityutskiy committed Jan 29, 2009
1 parent 4ccb51f commit b654a2a
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 227c75c91dbfa037d109ab7ef45b7f5ba9cab6d0
refs/heads/master: b466f17d780c5b72427f36aef22ecdec9f1d0689
18 changes: 5 additions & 13 deletions trunk/fs/ubifs/gc.c
Original file line number Diff line number Diff line change
Expand Up @@ -830,29 +830,21 @@ int ubifs_gc_end_commit(struct ubifs_info *c)
* ubifs_destroy_idx_gc - destroy idx_gc list.
* @c: UBIFS file-system description object
*
* This function destroys the @c->idx_gc list. It is called when unmounting or
* remounting read-only so locks are not needed. Returns zero in case of
* success and a negative error code in case of failure.
* This function destroys the @c->idx_gc list. It is called when unmounting
* so locks are not needed. Returns zero in case of success and a negative
* error code in case of failure.
*/
int ubifs_destroy_idx_gc(struct ubifs_info *c)
void ubifs_destroy_idx_gc(struct ubifs_info *c)
{
int ret = 0;

while (!list_empty(&c->idx_gc)) {
int err;
struct ubifs_gced_idx_leb *idx_gc;

idx_gc = list_entry(c->idx_gc.next, struct ubifs_gced_idx_leb,
list);
err = ubifs_change_one_lp(c, idx_gc->lnum, LPROPS_NC,
LPROPS_NC, 0, LPROPS_TAKEN, -1);
if (err && !ret)
ret = err;
c->idx_gc_cnt -= 1;
list_del(&idx_gc->list);
kfree(idx_gc);
}

return ret;
}

/**
Expand Down
14 changes: 7 additions & 7 deletions trunk/fs/ubifs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -1687,10 +1687,6 @@ static void ubifs_remount_ro(struct ubifs_info *c)
if (err)
ubifs_ro_mode(c, err);

err = ubifs_destroy_idx_gc(c);
if (err)
ubifs_ro_mode(c, err);

free_wbufs(c);
vfree(c->orph_buf);
c->orph_buf = NULL;
Expand Down Expand Up @@ -1793,15 +1789,19 @@ static int ubifs_remount_fs(struct super_block *sb, int *flags, char *data)

if ((sb->s_flags & MS_RDONLY) && !(*flags & MS_RDONLY)) {
if (c->ro_media) {
ubifs_msg("cannot re-mount R/W, UBIFS is working in "
"R/O mode");
ubifs_msg("cannot re-mount due to prior errors");
return -EINVAL;
}
err = ubifs_remount_rw(c);
if (err)
return err;
} else if (!(sb->s_flags & MS_RDONLY) && (*flags & MS_RDONLY))
} else if (!(sb->s_flags & MS_RDONLY) && (*flags & MS_RDONLY)) {
if (c->ro_media) {
ubifs_msg("cannot re-mount due to prior errors");
return -EINVAL;
}
ubifs_remount_ro(c);
}

if (c->bulk_read == 1)
bu_init(c);
Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/ubifs/ubifs.h
Original file line number Diff line number Diff line change
Expand Up @@ -1594,7 +1594,7 @@ int ubifs_replay_journal(struct ubifs_info *c);
int ubifs_garbage_collect(struct ubifs_info *c, int anyway);
int ubifs_gc_start_commit(struct ubifs_info *c);
int ubifs_gc_end_commit(struct ubifs_info *c);
int ubifs_destroy_idx_gc(struct ubifs_info *c);
void ubifs_destroy_idx_gc(struct ubifs_info *c);
int ubifs_get_idx_gc_leb(struct ubifs_info *c);
int ubifs_garbage_collect_leb(struct ubifs_info *c, struct ubifs_lprops *lp);

Expand Down

0 comments on commit b654a2a

Please sign in to comment.