1. 20 10月, 2007 2 次提交
    • T
      NFS: Fix a race in sillyrename · 565277f6
      Trond Myklebust 提交于
      lookup() and sillyrename() can race one another because the sillyrename()
      completion cannot take the parent directory's inode->i_mutex since the
      latter may be held by whoever is calling dput().
      
      We therefore have little option but to add extra locking to ensure that
      nfs_lookup() and nfs_atomic_open() do not race with the sillyrename
      completion.
      If somebody has looked up the sillyrenamed file in the meantime, we just
      transfer the sillydelete information to the new dentry.
      
      Please refer to the bug-report at
      	http://bugzilla.linux-nfs.org/show_bug.cgi?id=150Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      565277f6
    • T
      NFS: Fix a writeback race... · 61e930a9
      Trond Myklebust 提交于
      This patch fixes a regression that was introduced by commit
      44dd151d
      
      We cannot zero the user page in nfs_mark_uptodate() any more, since
      
        a) We'd be modifying the page without holding the page lock
        b) We can race with other updates of the page, most notably
           because of the call to nfs_wb_page() in nfs_writepage_setup().
      
      Instead, we do the zeroing in nfs_update_request() if we see that we're
      creating a request that might potentially be marked as up to date.
      
      Thanks to Olivier Paquet for reporting the bug and providing a test-case.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      61e930a9
  2. 19 10月, 2007 38 次提交