1. 06 10月, 2012 2 次提交
    • S
      fat (exportfs): fix dentry reconnection · 7669e8fb
      Steven J. Magnani 提交于
      Maintain an index of directory inodes by starting cluster, so that
      fat_get_parent() can return the proper cached inode rather than inventing
      one that cannot be traced back to the filesystem root.
      
      Add a new msdos/vfat binary mount option "nfs" so that FAT filesystems
      that are _not_ exported via NFS are not saddled with maintenance of an
      index they will never use.
      
      Finally, simplify NFS file handle generation and lookups.  An
      ext2-congruent implementation is adequate for FAT needs.
      Signed-off-by: NSteven J. Magnani <steve@digidescorp.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>
      7669e8fb
    • S
      fat (exportfs): move NFS support code · 21b6633d
      Steven J. Magnani 提交于
      Under memory pressure, the system may evict dentries from cache.  When the
      FAT driver receives a NFS request involving an evicted dentry, it is
      unable to reconnect it to the filesystem root.  This causes the request to
      fail, often with ENOENT.
      
      This is partially due to ineffectiveness of the current FAT NFS
      implementation, and partially due to an unimplemented fh_to_parent method.
       The latter can cause file accesses to fail on shares exported with
      subtree_check.
      
      This patch set provides the FAT driver with the ability to
      reconnect dentries.  NFS file handle generation and lookups are simplified
      and made congruent with ext2.
      
      Testing has involved a memory-starved virtual machine running 3.5-rc5 that
      exports a ~2 GB vfat filesystem containing a kernel tree (~770 MB, ~40000
      files, 9 levels).  Both 'cp -r' and 'ls -lR' operations were performed
      from a client, some overlapping, some consecutive.  Exports with
      'subtree_check' and 'no_subtree_check' have been tested.
      
      Note that while this patch set improves FAT's NFS support, it does not
      eliminate ESTALE errors completely.
      
      The following should be considered for NFS clients who are sensitive to ESTALE:
      
      * Mounting with lookupcache=none
        Unfortunately this can degrade performance severely, particularly for deep
        filesystems.
      
      * Incorporating VFS patches to retry ESTALE failures on the client-side,
        such as https://lkml.org/lkml/2012/6/29/381
      
      * Handling ESTALE errors in client application code
      
      This patch:
      
      Move NFS-related code into its own C file.  No functional changes.
      Signed-off-by: NSteven J. Magnani <steve@digidescorp.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>
      21b6633d
  2. 20 9月, 2012 1 次提交
  3. 31 7月, 2012 1 次提交
  4. 01 6月, 2012 2 次提交
    • 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: 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
  5. 04 1月, 2012 1 次提交
  6. 01 11月, 2011 1 次提交
  7. 21 7月, 2011 2 次提交
  8. 12 4月, 2011 3 次提交
  9. 13 1月, 2011 1 次提交
  10. 10 8月, 2010 1 次提交
    • C
      check ATTR_SIZE contraints in inode_change_ok · 2c27c65e
      Christoph Hellwig 提交于
      Make sure we check the truncate constraints early on in ->setattr by adding
      those checks to inode_change_ok.  Also clean up and document inode_change_ok
      to make this obvious.
      
      As a fallout we don't have to call inode_newsize_ok from simple_setsize and
      simplify it down to a truncate_setsize which doesn't return an error.  This
      simplifies a lot of setattr implementations and means we use truncate_setsize
      almost everywhere.  Get rid of fat_setsize now that it's trivial and mark
      ext2_setsize static to make the calling convention obvious.
      
      Keep the inode_newsize_ok in vmtruncate for now as all callers need an
      audit for its removal anyway.
      
      Note: setattr code in ecryptfs doesn't call inode_change_ok at all and
      needs a deeper audit, but that is left for later.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      2c27c65e
  11. 28 5月, 2010 2 次提交
  12. 25 5月, 2010 1 次提交
  13. 17 5月, 2010 1 次提交
  14. 21 11月, 2009 1 次提交
  15. 20 9月, 2009 1 次提交
    • O
      fat: Check s_dirt in fat_sync_fs() · ed248b29
      OGAWA Hirofumi 提交于
      If we didn't check sb->s_dirt, it will update the FSINFO
      unconditionally. It will reduce the filetime of flash base device.
      
      So, this checks sb->s_dirt. sb->s_dirt is racy, however FSINFO is just
      hint. So even if there is race, and we hit it, it would not become big
      problem.
      
      And this also is as workaround of suspend problem.
      Signed-off-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      ed248b29
  16. 12 6月, 2009 1 次提交
  17. 04 6月, 2009 1 次提交
  18. 07 11月, 2008 9 次提交
  19. 26 7月, 2008 3 次提交
  20. 09 6月, 2008 1 次提交
  21. 28 4月, 2008 4 次提交