1. 20 5月, 2006 3 次提交
  2. 19 5月, 2006 1 次提交
    • D
      [JFFS2] Support new device nodes · aef9ab47
      David Woodhouse 提交于
      Device node major/minor numbers are just stored in the payload of a single
      data node. Just extend that to 4 bytes and use new_encode_dev() for it.
      
      We only use the 4-byte format if we _need_ to, if !old_valid_dev(foo).
      This preserves backwards compatibility with older code as much as
      possible. If we do make devices with major or minor numbers above 255, and
      then mount the file system with the old code, it'll just read the first
      two bytes and get the numbers wrong. If it comes to garbage-collect it,
      it'll then write back those wrong numbers. But that's about the best we
      can expect.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      aef9ab47
  3. 17 5月, 2006 1 次提交
  4. 16 5月, 2006 3 次提交
  5. 15 5月, 2006 2 次提交
    • A
      [JFFS2] Fix printk format in some error messages. · 184f5652
      Andrew Morton 提交于
      fs/jffs2/nodelist.c: In function `check_node_data':
      fs/jffs2/nodelist.c:441: warning: unsigned int format, different type arg (arg 4)
      fs/jffs2/nodelist.c:464: warning: int format, different type arg (arg 5)
      
      Modified from Andrew's original fix because while his terminal may indeed
      only have eighty columns, mine only has _TWENTYFOUR_ lines. So the
      cosmetic fluff is perfectly OK out past column 80 where it was -- the
      casual reader doesn't _care_ about anything more than the fact that it
      goes 'if (foo) JFFS2_WARNING...', and there's no point wasting a whole
      line to display the tail end of the printk which nobody actually cares
      about.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      184f5652
    • D
      [JFFS2] Don't pack on-medium structures, because GCC emits crappy code · 3e68fbb5
      David Woodhouse 提交于
      If we use __attribute__((packed)), GCC will _also_ assume that the
      structures aren't sensibly aligned, and it'll emit code to cope with
      that instead of straight word load/save. This can be _very_ suboptimal
      on architectures like ARM.
      
      Ideally, we want an attribute which just tells GCC not to do any
      padding, without the alignment side-effects. In the absense of that,
      we'll just drop the 'packed' attribute and hope that everything stays as
      it was (which to be fair is fairly much what we expect). And add some
      paranoia checks in the initialisation code, which should be optimised
      away completely in the normal case.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      3e68fbb5
  6. 14 5月, 2006 1 次提交
    • D
      [JFFS2] Reduce excessive node count for syslog files. · cf5eba53
      David Woodhouse 提交于
      We currently get fairly poor behaviour with files which get many short
      writes, such as system logs. This is because we end up with many tiny
      data nodes, and the rbtree gets massive. None of these nodes are
      actually obsolete, so they are counted as 'clean' space. Eraseblocks can
      be entirely full of these nodes (which are REF_NORMAL instead of
      REF_PRISTINE), and still they count entirely towards 'used_size' and the
      eraseblocks can sit on the clean_list for a long time without being
      picked for GC.
      
      One way to alleviate this in the long term is to account REF_NORMAL
      space separately from REF_PRISTINE space, rather than counting them both
      towards used_size. Then these eraseblocks can be picked for GC and the
      offending nodes will be garbage collected.
      
      The short-term fix, though -- which probably makes sense even if we do
      eventually implement the above -- is to merge these nodes as they're
      written. When we write the last byte in a page, write the _whole_ page.
      This obsoletes the earlier nodes in the page _immediately_ and we don't
      even need to wait for the garbage collection to do it.
      
      Original implementation from Ferenc Havasi <havasi@inf.u-szeged.hu>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      cf5eba53
  7. 13 5月, 2006 12 次提交
  8. 12 5月, 2006 2 次提交
  9. 06 5月, 2006 1 次提交
  10. 03 5月, 2006 1 次提交
  11. 18 4月, 2006 1 次提交
  12. 17 4月, 2006 1 次提交
    • D
      [JFFS2] Fix race in post-mount node checking · d96fb997
      David Woodhouse 提交于
      For a while now, we've postponed CRC-checking of data nodes to be done
      by the GC thread, instead of being done while the user is waiting for
      mount to finish. The GC thread would iterate through all the inodes on
      the system and check each of their data nodes. It would skip over inodes
      which had already been used or were already being read in by
      read_inode(), because their data nodes would have been examined anyway.
      
      However, we could sometimes reach the end of the for-each-inode loop and
      still have some unchecked space left, if an inode we'd skipped was
      _still_ in the process of being read. This fixes that race by actually
      waiting for read_inode() to finish rather than just moving on.
      
      Thanks to Ladislav Michl for coming up with a reproducible test case and
      helping to track it down.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      d96fb997
  13. 12 4月, 2006 1 次提交
  14. 01 4月, 2006 1 次提交
  15. 29 3月, 2006 1 次提交
  16. 27 3月, 2006 1 次提交
    • I
      [PATCH] sem2mutex: fs/ · 353ab6e9
      Ingo Molnar 提交于
      Semaphore to mutex conversion.
      
      The conversion was generated via scripts, and the result was validated
      automatically via a script as well.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Eric Van Hensbergen <ericvh@ericvh.myip.org>
      Cc: Robert Love <rml@tech9.net>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Neil Brown <neilb@cse.unsw.edu.au>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Cc: Dave Kleikamp <shaggy@austin.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      353ab6e9
  17. 24 3月, 2006 3 次提交
    • P
      [PATCH] cpuset memory spread: slab cache format · fffb60f9
      Paul Jackson 提交于
      Rewrap the overly long source code lines resulting from the previous
      patch's addition of the slab cache flag SLAB_MEM_SPREAD.  This patch
      contains only formatting changes, and no function change.
      Signed-off-by: NPaul Jackson <pj@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      fffb60f9
    • P
      [PATCH] cpuset memory spread: slab cache filesystems · 4b6a9316
      Paul Jackson 提交于
      Mark file system inode and similar slab caches subject to SLAB_MEM_SPREAD
      memory spreading.
      
      If a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that's
      in a cpuset with the 'memory_spread_slab' option enabled goes to allocate
      from such a slab cache, the allocations are spread evenly over all the
      memory nodes (task->mems_allowed) allowed to that task, instead of favoring
      allocation on the node local to the current cpu.
      
      The following inode and similar caches are marked SLAB_MEM_SPREAD:
      
          file                               cache
          ====                               =====
          fs/adfs/super.c                    adfs_inode_cache
          fs/affs/super.c                    affs_inode_cache
          fs/befs/linuxvfs.c                 befs_inode_cache
          fs/bfs/inode.c                     bfs_inode_cache
          fs/block_dev.c                     bdev_cache
          fs/cifs/cifsfs.c                   cifs_inode_cache
          fs/coda/inode.c                    coda_inode_cache
          fs/dquot.c                         dquot
          fs/efs/super.c                     efs_inode_cache
          fs/ext2/super.c                    ext2_inode_cache
          fs/ext2/xattr.c (fs/mbcache.c)     ext2_xattr
          fs/ext3/super.c                    ext3_inode_cache
          fs/ext3/xattr.c (fs/mbcache.c)     ext3_xattr
          fs/fat/cache.c                     fat_cache
          fs/fat/inode.c                     fat_inode_cache
          fs/freevxfs/vxfs_super.c           vxfs_inode
          fs/hpfs/super.c                    hpfs_inode_cache
          fs/isofs/inode.c                   isofs_inode_cache
          fs/jffs/inode-v23.c                jffs_fm
          fs/jffs2/super.c                   jffs2_i
          fs/jfs/super.c                     jfs_ip
          fs/minix/inode.c                   minix_inode_cache
          fs/ncpfs/inode.c                   ncp_inode_cache
          fs/nfs/direct.c                    nfs_direct_cache
          fs/nfs/inode.c                     nfs_inode_cache
          fs/ntfs/super.c                    ntfs_big_inode_cache_name
          fs/ntfs/super.c                    ntfs_inode_cache
          fs/ocfs2/dlm/dlmfs.c               dlmfs_inode_cache
          fs/ocfs2/super.c                   ocfs2_inode_cache
          fs/proc/inode.c                    proc_inode_cache
          fs/qnx4/inode.c                    qnx4_inode_cache
          fs/reiserfs/super.c                reiser_inode_cache
          fs/romfs/inode.c                   romfs_inode_cache
          fs/smbfs/inode.c                   smb_inode_cache
          fs/sysv/inode.c                    sysv_inode_cache
          fs/udf/super.c                     udf_inode_cache
          fs/ufs/super.c                     ufs_inode_cache
          net/socket.c                       sock_inode_cache
          net/sunrpc/rpc_pipe.c              rpc_inode_cache
      
      The choice of which slab caches to so mark was quite simple.  I marked
      those already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache,
      inode_cache, and buffer_head, which were marked in a previous patch.  Even
      though SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same
      potentially large file system i/o related slab caches as we need for memory
      spreading.
      
      Given that the rule now becomes "wherever you would have used a
      SLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use
      the SLAB_MEM_SPREAD flag too", this should be easy enough to maintain.
      Future file system writers will just copy one of the existing file system
      slab cache setups and tend to get it right without thinking.
      Signed-off-by: NPaul Jackson <pj@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4b6a9316
    • T
      [PATCH] vfs: MS_VERBOSE should be MS_SILENT · 9b04c997
      Theodore Ts'o 提交于
      The meaning of MS_VERBOSE is backwards; if the bit is set, it really means,
      "don't be verbose".  This is confusing and counter-intuitive.
      
      In addition, there is also no way to set the MS_VERBOSE flag in the
      mount(8) program in util-linux, but interesting, it does define options
      which would do the right thing if MS_SILENT were defined, which
      unfortunately we do not:
      
      #ifdef MS_SILENT
        { "quiet",    0, 0, MS_SILENT    },   /* be quiet  */
        { "loud",     0, 1, MS_SILENT    },   /* print out messages. */
      #endif
      
      So the obvious fix is to deprecate the use of MS_VERBOSE and replace it
      with MS_SILENT.
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9b04c997
  18. 10 3月, 2006 1 次提交
  19. 09 3月, 2006 1 次提交
  20. 15 1月, 2006 1 次提交
  21. 12 1月, 2006 1 次提交