Skip to content

Commit

Permalink
UBIFS: assert no fixup when writing a node
Browse files Browse the repository at this point in the history
The current free space fixup can result in some writing to the UBI volume
when the space_fixup flag is set.

To catch instances where UBIFS is writing to the NAND while the space_fixup
flag is set, add an assert to ubifs_write_node().

Artem: tweaked the patch, added similar assertion to the write buffer
       write path.

Signed-off-by: Ben Gardiner <[email protected]>
Reviewed-by: Matthew L. Creech <[email protected]>
Signed-off-by: Artem Bityutskiy <[email protected]>
  • Loading branch information
BenGardiner authored and Artem Bityutskiy committed Jun 3, 2011
1 parent 8370723 commit 4f1ab9b
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions fs/ubifs/io.c
Original file line number Diff line number Diff line change
Expand Up @@ -581,6 +581,7 @@ int ubifs_wbuf_write_nolock(struct ubifs_wbuf *wbuf, void *buf, int len)
ubifs_assert(wbuf->size % c->min_io_size == 0);
ubifs_assert(mutex_is_locked(&wbuf->io_mutex));
ubifs_assert(!c->ro_media && !c->ro_mount);
ubifs_assert(!c->space_fixup);
if (c->leb_size - wbuf->offs >= c->max_write_size)
ubifs_assert(!((wbuf->offs + wbuf->size) % c->max_write_size));

Expand Down Expand Up @@ -759,6 +760,7 @@ int ubifs_write_node(struct ubifs_info *c, void *buf, int len, int lnum,
ubifs_assert(lnum >= 0 && lnum < c->leb_cnt && offs >= 0);
ubifs_assert(offs % c->min_io_size == 0 && offs < c->leb_size);
ubifs_assert(!c->ro_media && !c->ro_mount);
ubifs_assert(!c->space_fixup);

if (c->ro_error)
return -EROFS;
Expand Down

0 comments on commit 4f1ab9b

Please sign in to comment.