1. 30 1月, 2008 2 次提交
    • C
      NFS: Prevent nfs_getattr() hang during heavy write workloads · 28c494c5
      Chuck Lever 提交于
      POSIX requires that ctime and mtime, as reported by the stat(2) call,
      reflect the activity of the most recent write(2).  To that end, nfs_getattr()
      flushes pending dirty writes to a file before doing a GETATTR to allow the
      NFS server to set the file's size, ctime, and mtime properly.
      
      However, nfs_getattr() can be starved when a constant stream of application
      writes to a file prevents nfs_wb_nocommit() from completing.  This usually
      results in hangs of programs doing a stat against an NFS file that is being
      written.  "ls -l" is a common victim of this behavior.
      
      To prevent starvation, hold the file's i_mutex in nfs_getattr() to
      freeze applications writes temporarily so the client can more quickly obtain
      clean values for a file's size, mtime, and ctime.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      28c494c5
    • C
      NFS: Ensure nfs_wcc_update_inode always converts file size to loff_t · 8a8c74bf
      Chuck Lever 提交于
      The nfs_wcc_update_inode() function omits logic to convert the type of
      the NFS on-the-wire value of a file's size (__u64) to the type of file
      size value stored in struct inode (loff_t, which is signed).
      
      Everywhere else in the NFS client I checked already correctly converts the
      file size type.
      
      This effects only very large files.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      8a8c74bf
  2. 20 10月, 2007 2 次提交
  3. 19 10月, 2007 1 次提交
  4. 17 10月, 2007 1 次提交
  5. 10 10月, 2007 25 次提交
  6. 08 8月, 2007 1 次提交
    • T
      NFS: Fix put_nfs_open_context · 5e11934d
      Trond Myklebust 提交于
      We need to grab the inode->i_lock atomically with the last reference put in
      order to remove the open context that is being freed from the
      nfsi->open_files list.
      
      Fix by converting the kref to a standard atomic counter and then using
      atomic_dec_and_lock()...
      
      Thanks to Arnd Bergmann for pointing out the problem.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      5e11934d
  7. 20 7月, 2007 1 次提交
    • P
      mm: Remove slab destructors from kmem_cache_create(). · 20c2df83
      Paul Mundt 提交于
      Slab destructors were no longer supported after Christoph's
      c59def9f change. They've been
      BUGs for both slab and slub, and slob never supported them
      either.
      
      This rips out support for the dtor pointer from kmem_cache_create()
      completely and fixes up every single callsite in the kernel (there were
      about 224, not including the slab allocator definitions themselves,
      or the documentation references).
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      20c2df83
  8. 11 7月, 2007 7 次提交