1. 07 Oct, 2008 4 commits
    • Trond Myklebust's avatar
      NFS: Don't apply NFS_MOUNT_FLAGMASK to text-based mounts · ff3525a5
      Trond Myklebust authored
      The point of introducing text-based mounts was to allow us to add
      functionality without having to worry about legacy binary mount formats.
      The mask should be there in order to ensure that binary formats don't start
      enabling features that they cannot support. There is no justification for
      applying it to the text mount path.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      ff3525a5
    • Trond Myklebust's avatar
      NFS: Add options for finer control of the lookup cache · 4eec952e
      Trond Myklebust authored
      Add the flag NFS_MOUNT_LOOKUP_CACHE_NONEG to turn off the caching of
      negative dentries. In reality what we do is to force
      nfs_lookup_revalidate() to always discard negative dentries.
      
      Add the flag NFS_MOUNT_LOOKUP_CACHE_NONE for enforcing stricter
      revalidation of dentries. It forces the revalidate code to always do a
      lookup instead of just checking the cached mtime of the parent directory.
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      4eec952e
    • Trond Myklebust's avatar
      NFS: Clean up nfs_sb_active/nfs_sb_deactive · 1daef0a8
      Trond Myklebust authored
      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: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      1daef0a8
    • Trond Myklebust's avatar
      NFS: Fix nfs_file_llseek() · d5e66348
      Trond Myklebust authored
      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: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      d5e66348
  2. 06 Oct, 2008 13 commits
  3. 05 Oct, 2008 23 commits