<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/nfs/proc.c, branch linux-3.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-06-24T22:47:00Z</updated>
<entry>
<title>nfs: merge nfs_pgio_data into _header</title>
<updated>2014-06-24T22:47:00Z</updated>
<author>
<name>Weston Andros Adamson</name>
</author>
<published>2014-06-09T15:48:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d45f60c67848b9f19160692581d78e5b4757a000'/>
<id>urn:sha1:d45f60c67848b9f19160692581d78e5b4757a000</id>
<content type='text'>
struct nfs_pgio_data only exists as a member of nfs_pgio_header, but is
passed around everywhere, because there used to be multiple _data structs
per _header. Many of these functions then use the _data to find a pointer
to the _header.  This patch cleans this up by merging the nfs_pgio_data
structure into nfs_pgio_header and passing nfs_pgio_header around instead.

Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Weston Andros Adamson &lt;dros@primarydata.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFS: Create a common pgio_rpc_prepare function</title>
<updated>2014-05-28T22:40:28Z</updated>
<author>
<name>Anna Schumaker</name>
</author>
<published>2014-05-06T13:12:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a4cdda59111f92000297e0d3edb1e0e08ba3549b'/>
<id>urn:sha1:a4cdda59111f92000297e0d3edb1e0e08ba3549b</id>
<content type='text'>
The read and write paths do exactly the same thing for the rpc_prepare
rpc_op.  This patch combines them together into a single function.

Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFS: Create a common read and write data struct</title>
<updated>2014-05-28T22:12:47Z</updated>
<author>
<name>Anna Schumaker</name>
</author>
<published>2014-05-06T13:12:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c7e1b3d50b56b8d8f6237ed232350b7c6476cd5'/>
<id>urn:sha1:9c7e1b3d50b56b8d8f6237ed232350b7c6476cd5</id>
<content type='text'>
At this point, the only difference between nfs_read_data and
nfs_write_data is the write verifier.

Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>nfs: remove -&gt;read_pageio_init from rpc ops</title>
<updated>2014-05-28T21:50:08Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2014-04-16T13:07:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fab5fc25d230edcc8ee72367e505955a2fae0cac'/>
<id>urn:sha1:fab5fc25d230edcc8ee72367e505955a2fae0cac</id>
<content type='text'>
The read_pageio_init method is just a very convoluted way to grab the
right nfs_pageio_ops vector.  The vector to chose is not a choice of
protocol version, but just a pNFS vs MDS I/O choice that can simply be
done inside nfs_pageio_init_read based on the presence of a layout
driver, and a new force_mds flag to the special case of falling back
to MDS I/O on a pNFS-capable volume.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Tested-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>nfs: remove -&gt;write_pageio_init from rpc ops</title>
<updated>2014-05-28T21:48:38Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2014-04-16T13:07:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a20c93e3160e37ecccc738d8eef085c8507949ed'/>
<id>urn:sha1:a20c93e3160e37ecccc738d8eef085c8507949ed</id>
<content type='text'>
The write_pageio_init method is just a very convoluted way to grab the
right nfs_pageio_ops vector.  The vector to chose is not a choice of
protocol version, but just a pNFS vs MDS I/O choice that can simply be
done inside nfs_pageio_init_write based on the presence of a layout
driver, and a new force_mds flag to the special case of falling back
to MDS I/O on a pNFS-capable volume.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Tested-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>nfs: remove synchronous rename code</title>
<updated>2014-03-17T19:14:17Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2014-03-17T11:06:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=33912be816d96e204ed7a93690552daa39c08ea9'/>
<id>urn:sha1:33912be816d96e204ed7a93690552daa39c08ea9</id>
<content type='text'>
Now that nfs_rename uses the async infrastructure, we can remove this.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Tested-by: Anna Schumaker &lt;Anna.Schumaker@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>nfs: use %p[dD] instead of open-coded (and often racy) equivalents</title>
<updated>2013-10-25T03:34:50Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2013-09-16T14:53:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6de1472f1a4a3bd912f515f29d3cf52a65a4c718'/>
<id>urn:sha1:6de1472f1a4a3bd912f515f29d3cf52a65a4c718</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>NFSv4: Don't try to recover NFSv4 locks when they are lost.</title>
<updated>2013-09-04T16:26:32Z</updated>
<author>
<name>NeilBrown</name>
</author>
<published>2013-09-04T07:04:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ef1820f9be27b6ad158f433ab38002ab8131db4d'/>
<id>urn:sha1:ef1820f9be27b6ad158f433ab38002ab8131db4d</id>
<content type='text'>
When an NFSv4 client loses contact with the server it can lose any
locks that it holds.

Currently when it reconnects to the server it simply tries to reclaim
those locks.  This might succeed even though some other client has
held and released a lock in the mean time.  So the first client might
think the file is unchanged, but it isn't.  This isn't good.

If, when recovery happens, the locks cannot be claimed because some
other client still holds the lock, then we get a message in the kernel
logs, but the client can still write.  So two clients can both think
they have a lock and can both write at the same time.  This is equally
not good.

There was a patch a while ago
  http://comments.gmane.org/gmane.linux.nfs/41917

which tried to address some of this, but it didn't seem to go
anywhere.  That patch would also send a signal to the process.  That
might be useful but for now this patch just causes writes to fail.

For NFSv4 (unlike v2/v3) there is a strong link between the lock and
the write request so we can fairly easily fail any IO of the lock is
gone.  While some applications might not expect this, it is still
safer than allowing the write to succeed.

Because this is a fairly big change in behaviour a module parameter,
"recover_locks", is introduced which defaults to true (the current
behaviour) but can be set to "false" to tell the client not to try to
recover things that were lost.

Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS:Add labels to client function prototypes</title>
<updated>2013-06-08T20:20:15Z</updated>
<author>
<name>David Quigley</name>
</author>
<published>2013-05-22T16:50:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1775fd3e805b6a852ef376256967de69284d7962'/>
<id>urn:sha1:1775fd3e805b6a852ef376256967de69284d7962</id>
<content type='text'>
After looking at all of the nfsv4 operations the label structure has been added
to the prototypes of the functions which can transmit label data.

Signed-off-by: Matthew N. Dodd &lt;Matthew.Dodd@sparta.com&gt;
Signed-off-by: Miguel Rodel Felipe &lt;Rodel_FM@dsi.a-star.edu.sg&gt;
Signed-off-by: Phua Eu Gene &lt;PHUA_Eu_Gene@dsi.a-star.edu.sg&gt;
Signed-off-by: Khin Mi Mi Aung &lt;Mi_Mi_AUNG@dsi.a-star.edu.sg&gt;
Signed-off-by: Steve Dickson &lt;steved@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>new helper: file_inode(file)</title>
<updated>2013-02-23T04:31:31Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2013-01-23T22:07:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=496ad9aa8ef448058e36ca7a787c61f2e63f0f54'/>
<id>urn:sha1:496ad9aa8ef448058e36ca7a787c61f2e63f0f54</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
