1. 26 6月, 2006 3 次提交
    • E
      [PATCH] ufs: directory and page cache: install aops · 826843a3
      Evgeniy Dushistov 提交于
      This series of patches finished "bugs fixing" mentioned
      here http://lkml.org/lkml/2006/1/31/275 .
      
      The main bugs:
      * for i in `seq 1 1000`; do touch $i; done - crash system
      * mkdir create directory without "." and ".." entries
      
      The suggested solution is work with page cache instead of straight work
      with blocks.  Such solution has following advantages
      
      * reduce code size and its complexity
      * some global locks go away
      * fix bugs
      
      The most part of code is stolen from ext2, because of it has similar
      directory structure.
      
      Patches testes with UFS1 and UFS2 file systems.
      
      This patch installs i_mapping->a_ops for directory inodes and removes some
      duplicated code.
      Signed-off-by: NEvgeniy Dushistov <dushistov@mail.ru>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      826843a3
    • E
      [PATCH] ufs: change block number on the fly · 6ef4d6bf
      Evgeniy Dushistov 提交于
      First of all some necessary notes about UFS by it self: To avoid waste of disk
      space the tail of file consists not from blocks (which is ordinary big enough,
      16K usually), it consists from fragments(which is ordinary 2K).  When file is
      growing its tail occupy 1 fragment, 2 fragments...  At some stage decision to
      allocate whole block is made and all fragments are moved to one block.
      
      How this situation was handled before:
      
        ufs_prepare_write
        ->block_prepare_write
          ->ufs_getfrag_block
            ->...
              ->ufs_new_fragments:
      
      	bh = sb_bread
      	bh->b_blocknr = result + i;
      	mark_buffer_dirty (bh);
      
      This is wrong solution, because:
      
      - it didn't take into consideration that there is another cache: "inode page
        cache"
      
      - because of sb_getblk uses not b_blocknr, (it uses page->index) to find
        certain block, this breaks sb_getblk.
      
      How this situation is handled now: we go though all "page inode cache", if
      there are no such page in cache we load it into cache, and change b_blocknr.
      Signed-off-by: NEvgeniy Dushistov <dushistov@mail.ru>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6ef4d6bf
    • E
      [PATCH] ufs: right block allocation · c9a27b5d
      Evgeniy Dushistov 提交于
      * After block allocation, we map it on the same "address" as 8 others
        blocks
      
      * We nullify block several times: once in ufs/block.c and once in
        block_*write_full_page, and use different "caches" for this.
      Signed-off-by: NEvgeniy Dushistov <dushistov@mail.ru>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c9a27b5d
  2. 04 2月, 2006 1 次提交
  3. 15 1月, 2006 1 次提交
    • E
      [PATCH] ufs cleanup · 7b4ee73e
      Evgeniy 提交于
      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: NEvgeniy Dushistov <dushistov@mail.ru>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7b4ee73e
  4. 10 9月, 2005 1 次提交
  5. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      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!
      1da177e4