04 Jul, 2011

5 commits

  • We have too many different debugging checks - lessen the amount by merging all
    index-related checks into one. At the same time, move the "force in-the-gap"
    test to the "index checks" class, because it is too heavy for the "general"
    class.

    This patch merges TNC, Old index, and Index size check and calles this just
    "index checks".

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     
  • This patch introduces helper functions for all debugging checks, so instead of
    doing

    if (!(ubifs_chk_flags & UBIFS_CHK_GEN))

    we now do

    if (!dbg_is_chk_gen(c))

    This is a preparation to further changes where the flags will go away, and
    we'll need to only change the helper functions, but the code which utilizes
    them won't be touched.

    At the same time this patch removes 'dbg_force_in_the_gaps()',
    'dbg_force_in_the_gaps_enabled()', and dbg_failure_mode helpers for
    consistency.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     
  • Add a couple of comments - while looking into TNC I could not easily figure out
    few facts, so it is a good idea to document them in the code.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     
  • We have 3 znode flags: cow, obsolete, dirty. For the last flag we have a
    'ubifs_zn_dirty()' helper function, but for the other 2 flags we use
    'test_bit()' directly.

    This patch makes the situation more consistent and introduces helpers for the
    other 2 flags: 'ubifs_zn_cow()' and 'ubifs_zn_obsolete()'.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     
  • Remove dead pieces of code under "if (c->min_io_size == 1)" statement -
    we never execute it because in UBIFS 'c->min_io_size' is always at least 8.
    This are leftovers from old pre-mainline prototype.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

14 May, 2011

4 commits

  • UBIFS can force itself to use the 'in-the-gaps' commit method - the last resort
    method which is normally invoced very very rarely. Currently this "force
    int-the-gaps" debugging feature is a separate test mode. But it is a bit saner
    to make it to be the "general" self-test check instead.

    This patch is just a clean-up which should make the debugging code look a bit
    nicer and easier to use - we have way too many debugging options.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     
  • This patch improves the 'dbg_check_space_info()' function which checks
    whether the amount of space before re-mounting and after re-mounting
    is the same (remounting from R/O to R/W modes and vice-versa).

    The problem is that 'dbg_check_space_info()' does not save the budgeting
    information before re-mounting, so when an error is reported, we do not
    know why the amount of free space changed.

    This patches makes the following changes:

    1. Teaches 'dbg_dump_budg()' function to accept a 'struct ubifs_budg_info'
    argument and print out the this argument. This way we may ask it to
    print any saved budgeting info, no only the current one.
    2. Accordingly changes all the callers of 'dbg_dump_budg()' to comply with
    the changed interface.
    3. Introduce a 'saved_bi' (saved budgeting info) field to
    'struct ubifs_debug_info' and save the budgeting info before re-mounting
    there.
    4. Change 'dbg_check_space_info()' and make it print both old and new
    budgeting information.
    5. Additionally, save 'c->igx_gc_cnt' and print it if and error happens. This
    value contributes to the amount of free space, so we have to print it.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     
  • The current 'dbg_dump_budg()' calling convention is that the
    'c->space_lock' spinlock is held. However, none of the callers
    actually use it from contects which have 'c->space_lock' locked,
    so all callers have to explicitely lock and unlock the spinlock.
    This is not very sensible convention. This patch changes it and
    makes 'dbg_dump_budg()' lock the spinlock instead of imposing this
    to the callers. This simplifies the code a little.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     
  • This patch separates out all the budgeting-related information
    from 'struct ubifs_info' to 'struct ubifs_budg_info'. This way the
    code looks a bit cleaner. However, the main driver for this is
    that we want to save budgeting information and print it later,
    so a separate data structure for this is helpful.

    This patch is a preparation for the further debugging output
    improvements.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

10 Sep, 2009

1 commit

  • At the moment UBIFS print large and scary error messages and
    flash dumps in case of nearly any corruption, even if it is
    a recoverable corruption. For example, if the master node is
    corrupted, ubifs_scan() prints error dumps, then UBIFS recovers
    just fine and goes on.

    This patch makes UBIFS print scary error messages only in
    real cases, which are not recoverable. It adds 'quiet' argument
    to the 'ubifs_scan()' function, so the caller may ask 'ubi_scan()'
    not to print error messages if the caller is able to do recovery.

    Signed-off-by: Artem Bityutskiy
    Reviewed-by: Adrian Hunter

    Artem Bityutskiy
     

23 Dec, 2008

1 commit


03 Dec, 2008

1 commit


13 Aug, 2008

1 commit


15 Jul, 2008

1 commit