13 Feb, 2007

1 commit


08 Dec, 2006

1 commit


02 Jul, 2006

1 commit

  • This patch fixes buggy behaviour of UFS
    in such kind of scenario:
    open(, O_TRUNC...)
    ftruncate(, 1024)
    ftruncate(, 0)

    Such a scenario causes ufs_panic and remount read-only. This happen
    because of according to specification UFS should always allocate block for
    last byte, and many parts of our implementation rely on this, but
    `ufs_truncate' doesn't care about this.

    To make possible return error code and to know about old size, this patch
    removes `truncate' from ufs inode_operations and uses `setattr' method to
    call ufs_truncate.

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Dushistov
     

26 Jun, 2006

6 commits

  • In ufs code there is function: ubh_ll_rw_block, it has parameter how many
    ufs_buffer_head it should handle, but it always called with "1" on the place
    of this parameter. This patch removes unused parameter of "ubh_ll_wr_block".

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Dushistov
     
  • ufs super block contains some statistic about file systems, like amount of
    directories, free blocks, inodes and so on.

    UFS1 hold this information in one location and uses 32bit integers for such
    information, UFS2 hold statistic in another location and uses 64bit integers.

    There is transition variant, if UFS1 has type 44BSD and flags field in super
    block has some special value this mean that we work with statistic like UFS2
    does. and this also means that nobody care about old(UFS1) statistic.

    So if start fsck against such file system, after usage linux ufs driver, it
    found error: at now only UFS1 like statistic is updated.

    This patch should fix this. Also it contains some minor cleanup: CodingSytle
    and remove unused variables.

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Dushistov
     
  • Super block of UFS usually has size >512, because of fragment size may be 512,
    this cause some problems.

    Currently, there are two methods to work with ufs super block:

    1) split structure which describes ufs super blocks into structures with
    size b_data + bh[n]->b_size == bh[n + 1]->b_data

    The second variant may cause some problems in the future, and usage of two
    variants cause unnecessary code duplication.

    This patch remove the second variant. Also patch contains some CodingStyle
    fixes.

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Dushistov
     
  • The writing to UFS file system with block/fragment!=8 may cause bogus
    behaviour. The problem in "ufs_bitmap_search" function, which doesn't work
    correctly in "block/fragment!=8" case. The idea is stolen from BSD code.

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Dushistov
     
  • There are two ugly macros in ufs code:
    #define UCPI_UBH ((struct ufs_buffer_head *)ucpi)
    #define USPI_UBH ((struct ufs_buffer_head *)uspi)
    when uspi looks like
    struct {
    struct ufs_buffer_head ;
    }
    and USPI_UBH has some sence,
    ucpi looks like
    struct {
    struct not_ufs_buffer_head;
    }

    To prevent bugs in future, this patch convert macros to inline function and
    fix "ucpi" structure.

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Dushistov
     
  • Currently, ufs write support have two sets of problems: work with files and
    work with directories.

    This series of patches should solve the first problem.

    This patch is similar to http://lkml.org/lkml/2006/1/17/61 this patch
    complements it.

    The situation the same: in ufs_trunc_(not direct), we read block, check if
    count of links to it is equal to one, if so we finish cycle, if not
    continue. Because of "count of links" always >=2 this operation cause
    infinite cycle and hang up the kernel.

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Dushistov
     

15 Jan, 2006

1 commit

  • Here is update of ufs cleanup patch, brought on by the recently fixed
    ubh_get_usb_second() bug that made some ugly code rather painfully
    obvious. It also includes

    - fix compilation warnings which appears if debug mode turn on
    - remove unnecessary duplication of code to support UFS2

    I tested it on ufs1 and ufs2 file-systems.

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Linus Torvalds

    Evgeniy
     

14 Jan, 2006

1 commit

  • There's a lack of parenthesis in fs/ufs/utils.h, so instead of the 512th
    byte of buffer, the usb2 pointer will point to the nth structure of type
    ufs_super_block_second.

    This can cause a mount-time oops if you're unlucky (especially with
    DEBUG_PAGEALLOC, which is how Alexey Dobriyan saw this problem)

    Signed-off-by: Evgeniy Dushistov
    Acked-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Evgeniy
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds