1. 06 10月, 2012 12 次提交
  2. 03 10月, 2012 1 次提交
  3. 20 9月, 2012 1 次提交
  4. 31 7月, 2012 3 次提交
  5. 14 7月, 2012 3 次提交
  6. 12 7月, 2012 1 次提交
  7. 01 6月, 2012 6 次提交
    • N
      fat: use fat_msg_ratelimit() in fat__get_entry() · f0aac616
      Namjae Jeon 提交于
      If an application tries to lookup (opendir/readdir/stat) 5000 files on a
      fatfs USB device and the device is unplugged, many message occur, shown
      below.  This makes the application slow.  So use the new
      fat_msg_ratelimit() decrease the messaging rate.
      
        #> ./file_lookup_testcase ./files_directory/
        usb 2-1.4: USB disconnect, device number 4
        FAT-fs (sda1): FAT read failed (blocknr 2631)
        FAT-fs (sda1): Directory bread(block 396816) failed
        FAT-fs (sda1): Directory bread(block 396817) failed
        FAT-fs (sda1): Directory bread(block 396818) failed
        FAT-fs (sda1): Directory bread(block 396819) failed
        FAT-fs (sda1): Directory bread(block 396820) failed
        FAT-fs (sda1): Directory bread(block 396821) failed
        FAT-fs (sda1): Directory bread(block 396822) failed
        FAT-fs (sda1): Directory bread(block 396823) failed
        FAT-fs (sda1): Directory bread(block 406824) failed
        FAT-fs (sda1): Directory bread(block 406825) failed
        FAT-fs (sda1): Directory bread(block 406826) failed
        FAT-fs (sda1): Directory bread(block 406827) failed
        FAT-fs (sda1): Directory bread(block 406828) failed
        FAT-fs (sda1): Directory bread(block 406829) failed
        FAT-fs (sda1): Directory bread(block 406830) failed
        FAT-fs (sda1): Directory bread(block 406831) failed
        FAT-fs (sda1): Directory bread(block 417696) failed
        FAT-fs (sda1): Directory bread(block 417697) failed
        FAT-fs (sda1): Directory bread(block 417698) failed
        FAT-fs (sda1): Directory bread(block 417699) failed
        FAT-fs (sda1): Directory bread(block 417700) failed
        FAT-fs (sda1): Directory bread(block 417701) failed
        FAT-fs (sda1): Directory bread(block 417702) failed
        FAT-fs (sda1): Directory bread(block 417703) failed
        FAT-fs (sda1): FAT read failed (blocknr 2631)
        FAT-fs (sda1): Directory bread(block 396816) failed
        FAT-fs (sda1): Directory bread(block 396817) failed
        FAT-fs (sda1): Directory bread(block 396818) failed
        FAT-fs (sda1): Directory bread(block 396819) failed
        FAT-fs (sda1): Directory bread(block 396820) failed
        FAT-fs (sda1): Directory bread(block 396821) failed
      Signed-off-by: NNamjae Jeon <linkinjeon@gmail.com>
      Signed-off-by: NAmit Sahrawat <amit.sahrawat83@gmail.com>
      Acked-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f0aac616
    • N
      fat: add fat_msg_ratelimit() · b742c341
      Namjae Jeon 提交于
      Add a fat_msg_ratelimit() to limit the message generation rate.
      Signed-off-by: NNamjae Jeon <linkinjeon@gmail.com>
      Signed-off-by: NAmit Sahrawat <amit.sahrawat83@gmail.com>
      Acked-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b742c341
    • A
      fat: switch to fsinfo_inode · 78491189
      Artem Bityutskiy 提交于
      Currently FAT file-system maps the VFS "superblock" abstraction to the
      FSINFO block.  The FSINFO block contains non-essential data about the
      amount of free clusters and the next free cluster.  FAT file-system can
      always find out this information by scanning the FAT table, but having it
      in the FSINFO block may speed things up sometimes.  So FAT file-system
      relies on the VFS superblock write-out services to make sure the FSINFO
      block is written out to the media from time to time.
      
      The whole "superblock write-out" VFS infrastructure is served by the
      'sync_supers()' kernel thread, which wakes up every 5 (by default) seconds
      and writes out all dirty superblock using the '->write_super()' call-back.
       But the problem with this thread is that it wastes power by waking up the
      system every 5 seconds no matter what.  So we want to kill it completely
      and thus, we need to make file-systems to stop using the '->write_super'
      VFS service, and then remove it together with the kernel thread.
      
      This patch switches the FAT FSINFO block management from
      '->write_super()'/'->s_dirt' to 'fsinfo_inode'/'->write_inode'.  Now,
      instead of setting the 's_dirt' flag, we just mark the special
      'fsinfo_inode' inode as dirty and let VFS invoke the '->write_inode'
      call-back when needed, where we write-out the FSINFO block.
      
      This patch also makes sure we do not mark the 'fsinfo_inode' inode as
      dirty if we are not FAT32 (FAT16 and FAT12 do not have the FSINFO block)
      or if we are in R/O mode.
      
      As a bonus, we can also remove the '->sync_fs()' and '->write_super()' FAT
      call-back function because they become unneeded.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      78491189
    • A
      fat: mark superblock as dirty less often · 330fe3c4
      Artem Bityutskiy 提交于
      Preparation for further changes.  It touches few functions in fatent.c and
      prevents them from marking the superblock as dirty unnecessarily often.
      Namely, instead of marking it as dirty in the internal tight loops - do it
      only once at the end of the functions.  And instead of marking it as dirty
      while holding the FAT table lock, do it outside the lock.
      
      The reason for this patch is that marking the superblock as dirty will
      soon become a little bit heavier operation, so it is cleaner to do this
      only when it is necessary.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      330fe3c4
    • A
      fat: introduce mark_fsinfo_dirty helper · 90b43665
      Artem Bityutskiy 提交于
      A preparation patch which introduces a 'mark_fsinfo_dirty()' helper
      function which just sets the 's_dirt' flag to 1 so far.  I'll add more
      code to this helper later, so I do not mark it as 'inline'.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      90b43665
    • A
      fat: introduce special inode for managing the FSINFO block · 020ac5b6
      Artem Bityutskiy 提交于
      This is patchset makes fatfs stop using the VFS '->write_super()' method
      for writing out the FSINFO block.
      
      The final goal is to get rid of the 'sync_supers()' kernel thread.  This
      kernel thread wakes up every 5 seconds (by default) and calls
      '->write_super()' for all mounted file-systems.  And the bad thing is that
      this is done even if all the superblocks are clean.  Moreover, some
      file-systems do not even need this end they do not register the
      '->write_super()' method at all (e.g., btrfs).
      
      So 'sync_supers()' most often just generates useless wake-ups and wastes
      power.  I am trying to make all file-systems independent of
      '->write_super()' and plan to remove 'sync_supers()' and '->write_super'
      completely once there are no more users.
      
      The '->write_supers()' method is mostly used by baroque file-systems like
      hfs, udf, etc.  Modern file-systems like btrfs and xfs do not use it.
      This justifies removing this stuff from VFS completely and make every FS
      self-manage own superblock.
      
      Tested with xfstests.
      
      This patch:
      
      Preparation for further changes.  It introduces a special inode
      ('fsinfo_inode') in FAT file-system which we'll later use for managing the
      FSINFO block.  Note, this there is already one special inode ('fat_inode')
      which is used for managing the FAT tables.
      
      Introduce new 'MSDOS_FSINFO_INO' constant for this special inode.  It is
      safe to do because FAT file-system does not store inode numbers on the
      media but generates them run-time.
      
      I've also cleaned up the comment to existing 'MSDOS_ROOT_INO' constant,
      while on it.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      020ac5b6
  8. 30 5月, 2012 1 次提交
  9. 06 5月, 2012 1 次提交
  10. 24 3月, 2012 2 次提交
  11. 21 3月, 2012 1 次提交
  12. 07 1月, 2012 1 次提交
  13. 04 1月, 2012 6 次提交
  14. 15 12月, 2011 1 次提交