1. 03 4月, 2010 2 次提交
  2. 30 3月, 2010 1 次提交
  3. 24 3月, 2010 1 次提交
  4. 23 3月, 2010 1 次提交
    • J
      nfsd: don't break lease while servicing a COMMIT · 91885258
      Jeff Layton 提交于
      This is the second attempt to fix the problem whereby a COMMIT call
      causes a lease break and triggers a possible deadlock.
      
      The problem is that nfsd attempts to break a lease on a COMMIT call.
      This triggers a delegation recall if the lease is held for a delegation.
      If the client is the one holding the delegation and it's the same one on
      which it's issuing the COMMIT, then it can't return that delegation
      until the COMMIT is complete. But, nfsd won't complete the COMMIT until
      the delegation is returned. The client and server are essentially
      deadlocked until the state is marked bad (due to the client not
      responding on the callback channel).
      
      The first patch attempted to deal with this by eliminating the open of
      the file altogether and simply had nfsd_commit pass a NULL file pointer
      to the vfs_fsync_range. That would conflict with some work in progress
      by Christoph Hellwig to clean up the fsync interface, so this patch
      takes a different approach.
      
      This declares a new NFSD_MAY_NOT_BREAK_LEASE access flag that indicates
      to nfsd_open that it should not break any leases when opening the file,
      and has nfsd_commit set that flag on the nfsd_open call.
      
      For now, this patch leaves nfsd_commit opening the file with write
      access since I'm not clear on what sort of access would be more
      appropriate.
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      91885258
  5. 17 3月, 2010 1 次提交
  6. 15 3月, 2010 3 次提交
    • N
      sunrpc: never return expired entries in sunrpc_cache_lookup · d202cce8
      NeilBrown 提交于
      If sunrpc_cache_lookup finds an expired entry, remove it from
      the cache and return a freshly created non-VALID entry instead.
      This ensures that we only ever get a usable entry, or an
      entry that will become usable once an update arrives.
      i.e. we will never need to repeat the lookup.
      
      This allows us to remove the 'is_expired' test from cache_check
      (i.e. from cache_is_valid).  cache_check should never get an expired
      entry as 'lookup' will never return one.  If it does happen - due to
      inconvenient timing - then just accept it as still valid, it won't be
      very much past it's use-by date.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      d202cce8
    • N
      sunrpc/cache: factor out cache_is_expired · 2f50d8b6
      NeilBrown 提交于
      This removes a tiny bit of code duplication, but more important
      prepares for following patch which will perform the expiry check in
      cache_lookup and the rest of the validity check in cache_check.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      2f50d8b6
    • N
      sunrpc: don't keep expired entries in the auth caches. · 3af4974e
      NeilBrown 提交于
      currently expired entries remain in the auth caches as long
      as there is a reference.
      This was needed long ago when the auth_domain cache used the same
      cache infrastructure.  But since that (being a very different sort
      of cache) was separated, this test is no longer needed.
      
      So remove the test on refcnt and tidy up the surrounding code.
      
      This allows the cache_dequeue call (which needed to be there to
      drop a potentially awkward reference) can be moved outside of the
      spinlock which is a better place for it.
      Signed-off-by: NNeilBrown <neilb@suse.de>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      3af4974e
  7. 10 3月, 2010 1 次提交
  8. 09 3月, 2010 2 次提交
    • L
      Linux 2.6.34-rc1 · 57d54889
      Linus Torvalds 提交于
      57d54889
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 · e1015418
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (62 commits)
        msi-laptop: depends on RFKILL
        msi-laptop: Detect 3G device exists by standard ec command
        msi-laptop: Add resume method for set the SCM load again
        msi-laptop: Support some MSI 3G netbook that is need load SCM
        msi-laptop: Add threeg sysfs file for support query 3G state by standard 66/62 ec command
        msi-laptop: Support standard ec 66/62 command on MSI notebook and nebook
        Driver core: create lock/unlock functions for struct device
        sysfs: fix for thinko with sysfs_bin_attr_init()
        sysfs: Kill unused sysfs_sb variable.
        sysfs: Pass super_block to sysfs_get_inode
        driver core: Use sysfs_rename_link in device_rename
        sysfs: Implement sysfs_rename_link
        sysfs: Pack sysfs_dirent more tightly.
        sysfs: Serialize updates to the vfs inode
        sysfs: windfarm: init sysfs attributes
        sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on module dynamic attributes
        sysfs: Document sysfs_attr_init and sysfs_bin_attr_init
        sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on dynamic attributes
        sysfs: Use one lockdep class per sysfs attribute.
        sysfs: Only take active references on attributes.
        ...
      e1015418
  9. 08 3月, 2010 28 次提交