13 Dec, 2016

7 commits

  • Starting with version 5 the following properties change:
    - UBIFS_FLG_DOUBLE_HASH is mandatory
    - UBIFS_FLG_ENCRYPTION is optional but depdens on UBIFS_FLG_DOUBLE_HASH
    - Filesystems with unknown super block flags will be rejected, this
    allows us in future to add new features without raising the UBIFS
    write version.

    Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • This feature flag indicates that the filesystem contains encrypted
    files.

    Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • This feature flag indicates that all directory entry nodes have a 32bit
    cookie set and therefore UBIFS is allowed to perform lookups by hash.

    Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • UBIFS stores a 32bit hash of every file, for traditional lookups by name
    this scheme is fine since UBIFS can first try to find the file by the
    hash of the filename and upon collisions it can walk through all entries
    with the same hash and do a string compare.
    When filesnames are encrypted fscrypto will ask the filesystem for a
    unique cookie, based on this cookie the filesystem has to be able to
    locate the target file again. With 32bit hashes this is impossible
    because the chance for collisions is very high. Do deal with that we
    store a 32bit cookie directly in the UBIFS directory entry node such
    that we get a 64bit cookie (32bit from filename hash and the dent
    cookie). For a lookup by hash UBIFS finds the entry by the first 32bit
    and then compares the dent cookie. If it does not match, it has to do a
    linear search of the whole directory and compares all dent cookies until
    the correct entry is found.

    Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • When data of a data node is compressed and encrypted
    we need to store the size of the compressed data because
    before encryption we may have to add padding bytes.

    For the new field we consume the last two padding bytes
    in struct ubifs_data_node. Two bytes are fine because
    the data length is at most 4096.

    Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • This is the first building block to provide file level
    encryption on UBIFS.

    Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • Like ext4 UBIFS will store the crypto context in a xattr
    attribute.

    Signed-off-by: Richard Weinberger

    Richard Weinberger
     

16 May, 2011

1 commit

  • The 'space_fixup' flag can be set in the superblock of a new filesystem by
    mkfs.ubifs to indicate that any eraseblocks with free space remaining should be
    fixed-up the first time it's mounted (after which the flag is un-set). This
    means that the UBIFS image has been flashed by a "dumb" flasher and the free
    space has been actually programmed (writing all 0xFFs), so this free space
    cannot be used. UBIFS fixes the free space up by re-writing the contents of all
    LEBs with free space using the atomic LEB change UBI operation.

    Artem: improved commit message, add some more commentaries to the code.

    Signed-off-by: Matthew L. Creech
    Signed-off-by: Artem Bityutskiy

    Matthew L. Creech
     

14 May, 2011

1 commit

  • There was an attempt to standartize various "__attribute__" and
    other macros in order to have potentially portable and more
    consistent code, see commit 82ddcb040570411fc2d421d96b3e69711c670328.

    Note, that commit refers Rober Love's blog post, but the URL
    is broken, the valid URL is:
    http://blog.rlove.org/2005/10/with-little-help-from-your-compiler.html

    Moreover, nowadays checkpatch.pl warns about using
    __attribute__((packed)):

    "WARNING: __packed is preferred over __attribute__((packed))"

    It is not a big deal for UBIFS to use __packed, so let's do it.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

15 Sep, 2009

1 commit


26 Mar, 2009

1 commit

  • Now UBIFS is supported by u-boot. If we ever decide to change the
    media format, then people will have to upgrade their u-boots to
    mount new format images. However, very often it is possible to
    preserve R/O forward-compatibility, even though the write
    forward-compatibility is not preserved.

    This patch introduces a new super-block field which stores the
    R/O compatibility version.

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

    Artem Bityutskiy
     

03 Dec, 2008

1 commit


30 Sep, 2008

1 commit


06 Sep, 2008

1 commit


13 Aug, 2008

1 commit

  • At the moment UBIFS reserves twice old index size space for the
    index. But this is not enough in some cases, because if the indexing
    node are very fragmented and there are many small gaps, while the
    dirty index has big znodes - in-the-gaps method would fail.

    Thus, reserve trise as more, in which case we are guaranteed that
    we can commit in any case.

    Signed-off-by: Artem Bityutskiy

    Artem Bityutskiy
     

15 Jul, 2008

1 commit