1. 12 3月, 2011 11 次提交
  2. 11 3月, 2011 25 次提交
  3. 10 3月, 2011 4 次提交
    • J
      fs/dcache: allow d_obtain_alias() to return unhashed dentries · d891eedb
      J. Bruce Fields 提交于
      Without this patch, inodes are not promptly freed on last close of an
      unlinked file by an nfs client:
      
      	client$ mount -tnfs4 server:/export/ /mnt/
      	client$ tail -f /mnt/FOO
      	...
      	server$ df -i /export
      	server$ rm /export/FOO
      	(^C the tail -f)
      	server$ df -i /export
      	server$ echo 2 >/proc/sys/vm/drop_caches
      	server$ df -i /export
      
      the df's will show that the inode is not freed on the filesystem until
      the last step, when it could have been freed after killing the client's
      tail -f. On-disk data won't be deallocated either, leading to possible
      spurious ENOSPC.
      
      This occurs because when the client does the close, it arrives in a
      compound with a putfh and a close, processed like:
      
      	- putfh: look up the filehandle.  The only alias found for the
      	  inode will be DCACHE_UNHASHED alias referenced by the filp
      	  this, so it creates a new DCACHE_DISCONECTED dentry and
      	  returns that instead.
      	- close: closes the existing filp, which is destroyed
      	  immediately by dput() since it's DCACHE_UNHASHED.
      	- end of the compound: release the reference
      	  to the current filehandle, and dput() the new
      	  DCACHE_DISCONECTED dentry, which gets put on the
      	  unused list instead of being destroyed immediately.
      
      Nick Piggin suggested fixing this by allowing d_obtain_alias to return
      the unhashed dentry that is referenced by the filp, instead of making it
      create a new dentry.
      
      Leave __d_find_alias() alone to avoid changing behavior of other
      callers.
      
      Also nfsd doesn't need all the checks of __d_find_alias(); any dentry,
      hashed or unhashed, disconnected or not, should work.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      d891eedb
    • M
      tg3: Remove 5750 PCI code · c5908939
      Matt Carlson 提交于
      The 5750 ASIC rev was never released as a PCI device.  It only exists as
      a PCIe device.  This patch removes the code that supports the former
      configuration.
      Signed-off-by: NMatt Carlson <mcarlson@broadcom.com>
      Reviewed-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c5908939
    • M
      tg3: Move tg3_init_link_config to tg3_phy_probe · e256f8a3
      Matt Carlson 提交于
      This patch moves the function that initializes the link configuration
      closer to the place where the rest of the phy code is initialized.
      Signed-off-by: NMatt Carlson <mcarlson@broadcom.com>
      Reviewed-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e256f8a3
    • M
      tg3: Refine VAux decision process · 683644b7
      Matt Carlson 提交于
      In the near future, the VAux switching decision process is going to get
      more complicated.  This patch refines and consolidates the existing
      algorithm in anticipation of the new scheme.
      Signed-off-by: NMatt Carlson <mcarlson@broadcom.com>
      Reviewed-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      683644b7