1. 11 10月, 2008 7 次提交
  2. 10 10月, 2008 1 次提交
    • T
      NFS: Fix attribute updates · 03254e65
      Trond Myklebust 提交于
      This fixes a regression seen when running the Connectathon testsuite
      against an ext3 filesystem. The reason was that the inode was constantly
      being marked as 'just updated' by the jiffy wraparound test.
      This again meant that newer GETATTR calls were failing to pass the
      nfs_inode_attrs_need_update() test unless the changes caused a ctime update
      on the server, since they were perceived as having been started before the
      latest inode update.
      
      Given that nfs_inode_attrs_need_update() already checks for wraparound
      of nfsi->last_updated, we can drop the buggy "protection" in
      nfs_update_inode().
      
      Also make a slight micro-optimisation of nfs_inode_attrs_need_update(): we
      are more often going to see time_after(fattr->time_start, nfsi->last_updated)
      be true, rather than seeing an update of ctime/size, so put that test
      first to ensure that we optimise away the ctime/size tests.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      03254e65
  3. 09 10月, 2008 1 次提交
  4. 08 10月, 2008 28 次提交
  5. 07 10月, 2008 3 次提交
    • T
      NFS: Clean up nfs_sb_active/nfs_sb_deactive · 1daef0a8
      Trond Myklebust 提交于
      Instead of causing umount requests to block on server->active_wq while the
      asynchronous sillyrename deletes are executing, we can use the sb->s_active
      counter to obtain a reference to the super_block, and then release that
      reference in nfs_async_unlink_release().
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      1daef0a8
    • T
      NFS: Fix nfs_file_llseek() · d5e66348
      Trond Myklebust 提交于
      After the BKL removal patches were applied to the rest of the NFS code, the
      BKL protection in nfs_file_llseek() is no longer sufficient to ensure that
      inode->i_size is read safely in generic_file_llseek_unlocked().
      
      In order to fix the situation, we either have to replace the naked read of
      inode->i_size in generic_file_llseek_unlocked() with i_size_read(), or the
      whole thing needs to be executed under the inode->i_lock;
      In order to avoid disrupting other filesystems, avoid touching
      generic_file_llseek_unlocked() for now...
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      d5e66348
    • L
      Linux 2.6.27-rc9 · 4330ed8e
      Linus Torvalds 提交于
      4330ed8e