<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/nfs/delegation.c, branch v4.0</title>
<subtitle>Linux Kernel (branches are rebased on master from time to time)</subtitle>
<id>https://sre.ring0.de/linux/atom?h=v4.0</id>
<link rel='self' href='https://sre.ring0.de/linux/atom?h=v4.0'/>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/'/>
<updated>2015-03-02T23:09:15Z</updated>
<entry>
<title>NFSv4: Ensure we skip delegations that are already being returned</title>
<updated>2015-03-02T23:09:15Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-26T19:05:05Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ec3ca4e57e00d52ff724b0ae49f4489667a9c311'/>
<id>urn:sha1:ec3ca4e57e00d52ff724b0ae49f4489667a9c311</id>
<content type='text'>
In nfs_client_return_marked_delegations() and nfs_delegation_reap_unclaimed()
we want to optimise the loop traversal by skipping delegations that are
already in the process of being returned.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Pin the superblock while we're returning the delegation</title>
<updated>2015-03-02T23:09:14Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-26T14:57:34Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=9f0f8e12c48e4bb89192a0de876c77dc1fbfaa75'/>
<id>urn:sha1:9f0f8e12c48e4bb89192a0de876c77dc1fbfaa75</id>
<content type='text'>
This patch ensures that the superblock doesn't go ahead and disappear
underneath us while the state manager thread is returning delegations.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Ensure we honour NFS_DELEGATION_RETURNING in nfs_inode_set_delegation()</title>
<updated>2015-03-02T23:09:14Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-27T19:25:50Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ade04647dd56881e285983af3db702d56ee97e86'/>
<id>urn:sha1:ade04647dd56881e285983af3db702d56ee97e86</id>
<content type='text'>
Ensure that nfs_inode_set_delegation() doesn't inadvertently detach a
delegation that is already in the process of being returned.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Ensure that we don't reap a delegation that is being returned</title>
<updated>2015-03-02T23:09:13Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-26T18:59:38Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=b04b22f4ca691280f0ab3f77954f5a21500881e7'/>
<id>urn:sha1:b04b22f4ca691280f0ab3f77954f5a21500881e7</id>
<content type='text'>
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Don't call put_rpccred() under the rcu_read_lock()</title>
<updated>2015-03-02T04:23:07Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-26T17:54:46Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=7c0af9ffb7bb4e5355470fa60b3eb711ddf226fa'/>
<id>urn:sha1:7c0af9ffb7bb4e5355470fa60b3eb711ddf226fa</id>
<content type='text'>
put_rpccred() can sleep.

Fixes: 8f649c3762547 ("NFSv4: Fix the locking in nfs_inode_reclaim_delegation()")
Cc: stable@vger.kernel.org # 2.6.35+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'cleanups'</title>
<updated>2015-02-18T15:28:37Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-18T15:28:37Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=65d2918e716afb89359cfa59734d76c1ff8700cb'/>
<id>urn:sha1:65d2918e716afb89359cfa59734d76c1ff8700cb</id>
<content type='text'>
Merge cleanups requested by Linus.

* cleanups: (3 commits)
  pnfs: Refactor the *_layout_mark_request_commit to use pnfs_layout_mark_request_commit
  nfs: Can call nfs_clear_page_commit() instead
  nfs: Provide and use helper functions for marking a page as unstable
</content>
</entry>
<entry>
<title>NFSv4: Kill unused nfs_inode-&gt;delegation_state field</title>
<updated>2015-02-14T02:40:27Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-14T02:40:27Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=bf40e5561fd288a505d5d8d8bf45eef96fe7253d'/>
<id>urn:sha1:bf40e5561fd288a505d5d8d8bf45eef96fe7253d</id>
<content type='text'>
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'nfs-for-3.20-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs</title>
<updated>2015-02-12T01:14:54Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-02-12T01:14:54Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=6f83e5bd3e96228ee0caff0b103addb5f4e95459'/>
<id>urn:sha1:6f83e5bd3e96228ee0caff0b103addb5f4e95459</id>
<content type='text'>
Pull NFS client updates from Trond Myklebust:
 "Highlights incluse:

  Features:
   - Removing the forced serialisation of open()/close() calls in
     NFSv4.x (x&gt;0) makes for a significant performance improvement in
     metadata intensive workloads.
   - Full support for the pNFS "flexible files" layout type
   - Further RPC/RDMA client improvements from Chuck

  Bugfixes:
   - Stable fix: NFSv4.1 backchannel calls blocking operations with !TASK_RUNNING
   - Stable fix: pnfs_generic_pg_init_read/write can be called with lseg == NULL
   - Stable fix: Fix an Oopsable condition when nsm_mon_unmon is called
     as part of the namespace cleanup,
   - Stable fix: Ensure we reference the inode for return-on-close in
     delegreturn
   - Use SO_REUSEPORT to ensure that NFSv3 TCP connections can rebind to
     the same source address/port combination during a disconnect/
     reconnect event.  This is a requirement imposed by most NFSv3
     server duplicate reply cache implementations.

  Optimisations:
   - Ask for no NFSv4.1 delegations on OPEN if using O_DIRECT

  Other:
   - Add Anna Schumaker as co-maintainer for the NFS client"

* tag 'nfs-for-3.20-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (119 commits)
  SUNRPC: Cleanup to remove xs_tcp_close()
  pnfs: delete an unintended goto
  pnfs/flexfiles: Do not dprintk after the free
  SUNRPC: Fix stupid typo in xs_sock_set_reuseport
  SUNRPC: Define xs_tcp_fin_timeout only if CONFIG_SUNRPC_DEBUG
  SUNRPC: Handle connection reset more efficiently.
  SUNRPC: Remove the redundant XPRT_CONNECTION_CLOSE flag
  SUNRPC: Make xs_tcp_close() do a socket shutdown rather than a sock_release
  SUNRPC: Ensure xs_tcp_shutdown() requests a full close of the connection
  SUNRPC: Cleanup to remove remaining uses of XPRT_CONNECTION_ABORT
  SUNRPC: Remove TCP socket linger code
  SUNRPC: Remove TCP client connection reset hack
  SUNRPC: TCP/UDP always close the old socket before reconnecting
  SUNRPC: Add helpers to prevent socket create from racing
  SUNRPC: Ensure xs_reset_transport() resets the close connection flags
  SUNRPC: Do not clear the source port in xs_reset_transport
  SUNRPC: Handle EADDRINUSE on connect
  SUNRPC: Set SO_REUSEPORT socket option for TCP connections
  NFSv4.1: Fix pnfs_put_lseg races
  NFSv4.1: pnfs_send_layoutreturn should use GFP_NOFS
  ...
</content>
</entry>
<entry>
<title>NFSv4: Deal with atomic upgrades of an existing delegation</title>
<updated>2015-01-24T23:46:51Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2014-12-19T16:22:28Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=cf6726e2ee387b0eff303628eaa0beaf36a1aeb4'/>
<id>urn:sha1:cf6726e2ee387b0eff303628eaa0beaf36a1aeb4</id>
<content type='text'>
Ensure that we deal correctly with the case where the server sends us a
newer instance of the same delegation. If the stateids match, but the
sequence numbers differ, then treat the new delegation as if it were
an atomic upgrade.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>locks: add a dedicated spinlock to protect i_flctx lists</title>
<updated>2015-01-16T21:08:49Z</updated>
<author>
<name>Jeff Layton</name>
<email>jlayton@primarydata.com</email>
</author>
<published>2015-01-16T20:05:57Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=6109c85037e53443f29fd39c0de69f578a1cf285'/>
<id>urn:sha1:6109c85037e53443f29fd39c0de69f578a1cf285</id>
<content type='text'>
We can now add a dedicated spinlock without expanding struct inode.
Change to using that to protect the various i_flctx lists.

Signed-off-by: Jeff Layton &lt;jlayton@primarydata.com&gt;
Acked-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
</feed>
