<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus2008.git/fs/nfs, branch master</title>
<subtitle>[ARCHIVE] Old LITMUS^RT 2008 version (for reference).</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/'/>
<entry>
<title>NFSv4: Give the lock stateid its own sequence queue</title>
<updated>2008-01-10T21:35:32+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2008-01-10T21:07:54+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=d0dc3701cb46f73cf8ca393f62e325065b0bbd03'/>
<id>d0dc3701cb46f73cf8ca393f62e325065b0bbd03</id>
<content type='text'>
Sharing the open sequence queue causes a deadlock when we try to take
both a lock sequence id and and open sequence id.

This fixes the regression reported by Dimitri Puzin and Jeff Garzik: See

	http://bugzilla.kernel.org/show_bug.cgi?id=9712

for details.

Reported-and-tested-by: Dimitri Puzin &lt;bugs@psycast.de&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Tested-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sharing the open sequence queue causes a deadlock when we try to take
both a lock sequence id and and open sequence id.

This fixes the regression reported by Dimitri Puzin and Jeff Garzik: See

	http://bugzilla.kernel.org/show_bug.cgi?id=9712

for details.

Reported-and-tested-by: Dimitri Puzin &lt;bugs@psycast.de&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Tested-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv4: Fix open_to_lock_owner sequenceid allocation...</title>
<updated>2008-01-03T14:37:17+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2008-01-02T21:27:16+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=e6e21970baff4845de74584e2efc8c964a55d574'/>
<id>e6e21970baff4845de74584e2efc8c964a55d574</id>
<content type='text'>
NFSv4 file locking is currently completely broken since it doesn't respect
the OPEN sequencing when it is given an unconfirmed lock_owner and needs to
do an open_to_lock_owner. Worse: it breaks the sunrpc rules by doing a
GFP_KERNEL allocation inside an rpciod callback.

Fix is to preallocate the open seqid structure in nfs4_alloc_lockdata if we
see that the lock_owner is unconfirmed.
Then, in nfs4_lock_prepare() we wait for either the open_seqid, if
the lock_owner is still unconfirmed, or else fall back to waiting on the
standard lock_seqid.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
NFSv4 file locking is currently completely broken since it doesn't respect
the OPEN sequencing when it is given an unconfirmed lock_owner and needs to
do an open_to_lock_owner. Worse: it breaks the sunrpc rules by doing a
GFP_KERNEL allocation inside an rpciod callback.

Fix is to preallocate the open seqid structure in nfs4_alloc_lockdata if we
see that the lock_owner is unconfirmed.
Then, in nfs4_lock_prepare() we wait for either the open_seqid, if
the lock_owner is still unconfirmed, or else fall back to waiting on the
standard lock_seqid.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv4: nfs4_open_confirm must not set the open_owner as confirmed on error</title>
<updated>2008-01-03T14:37:17+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2008-01-02T20:19:18+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=bb22629ee87eed5054f8b508dbe7c58abad0a324'/>
<id>bb22629ee87eed5054f8b508dbe7c58abad0a324</id>
<content type='text'>
RFC3530 states that the open_owner is confirmed if and only if the client
sends an OPEN_CONFIRM request with the appropriate sequence id and stateid
within the lease period.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
RFC3530 states that the open_owner is confirmed if and only if the client
sends an OPEN_CONFIRM request with the appropriate sequence id and stateid
within the lease period.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv4: Fix circular locking dependency in nfs4_kill_renewd</title>
<updated>2008-01-03T14:37:16+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2008-01-02T18:52:03+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=b274b48f3ef6e43e3831e8793c697a9573a607af'/>
<id>b274b48f3ef6e43e3831e8793c697a9573a607af</id>
<content type='text'>
Erez Zadok reports:

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.24-rc6-unionfs2 #80
-------------------------------------------------------
umount.nfs4/4017 is trying to acquire lock:
 (&amp;(&amp;clp-&gt;cl_renewd)-&gt;work){--..}, at: [&lt;c0223e53&gt;]
__cancel_work_timer+0x83/0x17f

but task is already holding lock:
 (&amp;clp-&gt;cl_sem){----}, at: [&lt;f8879897&gt;] nfs4_kill_renewd+0x17/0x29 [nfs]

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-&gt; #1 (&amp;clp-&gt;cl_sem){----}:
       [&lt;c0230699&gt;] __lock_acquire+0x9cc/0xb95
       [&lt;c0230c39&gt;] lock_acquire+0x5f/0x78
       [&lt;c0397cb8&gt;] down_read+0x3a/0x4c
       [&lt;f88798e6&gt;] nfs4_renew_state+0x1c/0x1b8 [nfs]
       [&lt;c0223821&gt;] run_workqueue+0xd9/0x1ac
       [&lt;c0224220&gt;] worker_thread+0x7a/0x86
       [&lt;c0226b49&gt;] kthread+0x3b/0x62
       [&lt;c02033a3&gt;] kernel_thread_helper+0x7/0x10
       [&lt;ffffffff&gt;] 0xffffffff

-&gt; #0 (&amp;(&amp;clp-&gt;cl_renewd)-&gt;work){--..}:
       [&lt;c0230589&gt;] __lock_acquire+0x8bc/0xb95
       [&lt;c0230c39&gt;] lock_acquire+0x5f/0x78
       [&lt;c0223e87&gt;] __cancel_work_timer+0xb7/0x17f
       [&lt;c0223f5a&gt;] cancel_delayed_work_sync+0xb/0xd
       [&lt;f887989e&gt;] nfs4_kill_renewd+0x1e/0x29 [nfs]
       [&lt;f885a8f6&gt;] nfs_free_client+0x37/0x9e [nfs]
       [&lt;f885ab20&gt;] nfs_put_client+0x5d/0x62 [nfs]
       [&lt;f885ab9a&gt;] nfs_free_server+0x75/0xae [nfs]
       [&lt;f8862672&gt;] nfs4_kill_super+0x27/0x2b [nfs]
       [&lt;c0258aab&gt;] deactivate_super+0x3f/0x51
       [&lt;c0269668&gt;] mntput_no_expire+0x42/0x67
       [&lt;c025d0e4&gt;] path_release_on_umount+0x15/0x18
       [&lt;c0269d30&gt;] sys_umount+0x1a3/0x1cb
       [&lt;c0269d71&gt;] sys_oldumount+0x19/0x1b
       [&lt;c02026ca&gt;] sysenter_past_esp+0x5f/0xa5
       [&lt;ffffffff&gt;] 0xffffffff

Looking at the code, it would seem that taking the clp-&gt;cl_sem in
nfs4_kill_renewd is completely redundant, since we're already guaranteed to
have exclusive access to the nfs_client (we're shutting down).

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Erez Zadok reports:

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.24-rc6-unionfs2 #80
-------------------------------------------------------
umount.nfs4/4017 is trying to acquire lock:
 (&amp;(&amp;clp-&gt;cl_renewd)-&gt;work){--..}, at: [&lt;c0223e53&gt;]
__cancel_work_timer+0x83/0x17f

but task is already holding lock:
 (&amp;clp-&gt;cl_sem){----}, at: [&lt;f8879897&gt;] nfs4_kill_renewd+0x17/0x29 [nfs]

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-&gt; #1 (&amp;clp-&gt;cl_sem){----}:
       [&lt;c0230699&gt;] __lock_acquire+0x9cc/0xb95
       [&lt;c0230c39&gt;] lock_acquire+0x5f/0x78
       [&lt;c0397cb8&gt;] down_read+0x3a/0x4c
       [&lt;f88798e6&gt;] nfs4_renew_state+0x1c/0x1b8 [nfs]
       [&lt;c0223821&gt;] run_workqueue+0xd9/0x1ac
       [&lt;c0224220&gt;] worker_thread+0x7a/0x86
       [&lt;c0226b49&gt;] kthread+0x3b/0x62
       [&lt;c02033a3&gt;] kernel_thread_helper+0x7/0x10
       [&lt;ffffffff&gt;] 0xffffffff

-&gt; #0 (&amp;(&amp;clp-&gt;cl_renewd)-&gt;work){--..}:
       [&lt;c0230589&gt;] __lock_acquire+0x8bc/0xb95
       [&lt;c0230c39&gt;] lock_acquire+0x5f/0x78
       [&lt;c0223e87&gt;] __cancel_work_timer+0xb7/0x17f
       [&lt;c0223f5a&gt;] cancel_delayed_work_sync+0xb/0xd
       [&lt;f887989e&gt;] nfs4_kill_renewd+0x1e/0x29 [nfs]
       [&lt;f885a8f6&gt;] nfs_free_client+0x37/0x9e [nfs]
       [&lt;f885ab20&gt;] nfs_put_client+0x5d/0x62 [nfs]
       [&lt;f885ab9a&gt;] nfs_free_server+0x75/0xae [nfs]
       [&lt;f8862672&gt;] nfs4_kill_super+0x27/0x2b [nfs]
       [&lt;c0258aab&gt;] deactivate_super+0x3f/0x51
       [&lt;c0269668&gt;] mntput_no_expire+0x42/0x67
       [&lt;c025d0e4&gt;] path_release_on_umount+0x15/0x18
       [&lt;c0269d30&gt;] sys_umount+0x1a3/0x1cb
       [&lt;c0269d71&gt;] sys_oldumount+0x19/0x1b
       [&lt;c02026ca&gt;] sysenter_past_esp+0x5f/0xa5
       [&lt;ffffffff&gt;] 0xffffffff

Looking at the code, it would seem that taking the clp-&gt;cl_sem in
nfs4_kill_renewd is completely redundant, since we're already guaranteed to
have exclusive access to the nfs_client (we're shutting down).

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Fix a possible Oops in fs/nfs/super.c</title>
<updated>2008-01-03T14:37:11+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2008-01-02T18:28:57+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=e9cc6c234bfe414ef36f484e3ad8be621854c440'/>
<id>e9cc6c234bfe414ef36f484e3ad8be621854c440</id>
<content type='text'>
Sigh... commit 4584f520e1f773082ef44ff4f8969a5d992b16ec (NFS: Fix NFS
mountpoint crossing...) had a slight flaw: server can be NULL if sget()
returned an existing superblock.

Fix the fix by dereferencing s-&gt;s_fs_info.

Thanks to Coverity/Adrian Bunk and Frank Filz for spotting the bug.
(See http://bugzilla.kernel.org/show_bug.cgi?id=9647)

Also add in the same namespace Oops fix for NFSv4 in both the mountpoint
crossing case, and the referral case.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sigh... commit 4584f520e1f773082ef44ff4f8969a5d992b16ec (NFS: Fix NFS
mountpoint crossing...) had a slight flaw: server can be NULL if sget()
returned an existing superblock.

Fix the fix by dereferencing s-&gt;s_fs_info.

Thanks to Coverity/Adrian Bunk and Frank Filz for spotting the bug.
(See http://bugzilla.kernel.org/show_bug.cgi?id=9647)

Also add in the same namespace Oops fix for NFSv4 in both the mountpoint
crossing case, and the referral case.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Fix an Oops in NFS unmount</title>
<updated>2007-12-12T16:12:15+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2007-12-12T16:12:15+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=a10db50a4ae813fcb2f431f2fb039933c109a925'/>
<id>a10db50a4ae813fcb2f431f2fb039933c109a925</id>
<content type='text'>
Ensure that the dummy 'root dentry' is invisible to d_find_alias(). If not,
then it may be spliced into the tree if a parent directory from the same
filesystem gets mounted at a later time.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ensure that the dummy 'root dentry' is invisible to d_find_alias(). If not,
then it may be spliced into the tree if a parent directory from the same
filesystem gets mounted at a later time.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "NFS: Ensure we return zero if applications attempt to write zero bytes"</title>
<updated>2007-12-12T16:08:33+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2007-12-12T16:08:33+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=a5576cfa5cd8d8aa874bd4ee500dc8a2e7cbad18'/>
<id>a5576cfa5cd8d8aa874bd4ee500dc8a2e7cbad18</id>
<content type='text'>
This reverts commit b9148c6b80d802dbc2a7530b29915a80432e50c7.

On Wed, 12 Dec 2007 10:57:30 -0500, Chuck Lever wrote
&gt; commit b9148c6b should be reverted.  It was recently forward-ported
&gt; from some years-old patches, and is clearly not needed now.
&gt;
&gt; On Dec 11, 2007, at 5:21 PM, Adrian Bunk wrote:
&gt;
&gt;&gt; This code became dead after commit
&gt;&gt; b9148c6b80d802dbc2a7530b29915a80432e50c7
&gt;&gt; (which BTW doesn't seem to have changed any behaviour) and can
&gt;&gt; therefore
&gt;&gt; be removed.
&gt;&gt;
&gt;&gt; Spotted by the Coverity checker.
&gt;&gt;
&gt;&gt; Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
&gt;&gt;
&gt;&gt; ---
&gt;&gt; --- linux-2.6/fs/nfs/direct.c.old     2007-12-02 21:54:53.000000000 +0100
&gt;&gt; +++ linux-2.6/fs/nfs/direct.c 2007-12-02 21:55:10.000000000 +0100
&gt;&gt; @@ -897,15 +897,12 @@ ssize_t nfs_file_direct_write(struct kio
&gt;&gt;       if (!count)
&gt;&gt;               goto out;       /* return 0 */
&gt;&gt;
&gt;&gt;       retval = -EINVAL;
&gt;&gt;       if ((ssize_t) count &lt; 0)
&gt;&gt;               goto out;
&gt;&gt; -     retval = 0;
&gt;&gt; -     if (!count)
&gt;&gt; -             goto out;
&gt;&gt;
&gt;&gt;       retval = nfs_sync_mapping(mapping);
&gt;&gt;       if (retval)
&gt;&gt;               goto out;
&gt;&gt;
&gt;&gt;       retval = nfs_direct_write(iocb, iov, nr_segs, pos, count);
&gt;&gt;

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit b9148c6b80d802dbc2a7530b29915a80432e50c7.

On Wed, 12 Dec 2007 10:57:30 -0500, Chuck Lever wrote
&gt; commit b9148c6b should be reverted.  It was recently forward-ported
&gt; from some years-old patches, and is clearly not needed now.
&gt;
&gt; On Dec 11, 2007, at 5:21 PM, Adrian Bunk wrote:
&gt;
&gt;&gt; This code became dead after commit
&gt;&gt; b9148c6b80d802dbc2a7530b29915a80432e50c7
&gt;&gt; (which BTW doesn't seem to have changed any behaviour) and can
&gt;&gt; therefore
&gt;&gt; be removed.
&gt;&gt;
&gt;&gt; Spotted by the Coverity checker.
&gt;&gt;
&gt;&gt; Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
&gt;&gt;
&gt;&gt; ---
&gt;&gt; --- linux-2.6/fs/nfs/direct.c.old     2007-12-02 21:54:53.000000000 +0100
&gt;&gt; +++ linux-2.6/fs/nfs/direct.c 2007-12-02 21:55:10.000000000 +0100
&gt;&gt; @@ -897,15 +897,12 @@ ssize_t nfs_file_direct_write(struct kio
&gt;&gt;       if (!count)
&gt;&gt;               goto out;       /* return 0 */
&gt;&gt;
&gt;&gt;       retval = -EINVAL;
&gt;&gt;       if ((ssize_t) count &lt; 0)
&gt;&gt;               goto out;
&gt;&gt; -     retval = 0;
&gt;&gt; -     if (!count)
&gt;&gt; -             goto out;
&gt;&gt;
&gt;&gt;       retval = nfs_sync_mapping(mapping);
&gt;&gt;       if (retval)
&gt;&gt;               goto out;
&gt;&gt;
&gt;&gt;       retval = nfs_direct_write(iocb, iov, nr_segs, pos, count);
&gt;&gt;

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv2/v3: Fix a memory leak when using -onolock</title>
<updated>2007-12-12T03:01:56+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2007-12-12T03:01:56+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=5cef338b30c110daf547fb13d99f0c77f2a79fbc'/>
<id>5cef338b30c110daf547fb13d99f0c77f2a79fbc</id>
<content type='text'>
Neil Brown said:
&gt; Hi Trond,
&gt; 
&gt; We found that a machine which made moderately heavy use of
&gt; 'automount' was leaking some nfs data structures - particularly the
&gt; 4K allocated by rpc_alloc_iostats.
&gt; It turns out that this only happens with filesystems with -onolock
&gt; set.

&gt; The problem is that if NFS_MOUNT_NONLM is set, nfs_start_lockd doesn't
&gt; set server-&gt;destroy, so when the filesystem is unmounted, the
&gt; -&gt;client_acl is not shutdown, and so several resources are still
&gt; held.  Multiple mount/umount cycles will slowly eat away memory
&gt; several pages at a time.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Acked-by: NeilBrown &lt;neilb@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Neil Brown said:
&gt; Hi Trond,
&gt; 
&gt; We found that a machine which made moderately heavy use of
&gt; 'automount' was leaking some nfs data structures - particularly the
&gt; 4K allocated by rpc_alloc_iostats.
&gt; It turns out that this only happens with filesystems with -onolock
&gt; set.

&gt; The problem is that if NFS_MOUNT_NONLM is set, nfs_start_lockd doesn't
&gt; set server-&gt;destroy, so when the filesystem is unmounted, the
&gt; -&gt;client_acl is not shutdown, and so several resources are still
&gt; held.  Multiple mount/umount cycles will slowly eat away memory
&gt; several pages at a time.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Acked-by: NeilBrown &lt;neilb@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Fix NFS mountpoint crossing...</title>
<updated>2007-12-12T00:01:45+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2007-12-12T00:01:45+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=4584f520e1f773082ef44ff4f8969a5d992b16ec'/>
<id>4584f520e1f773082ef44ff4f8969a5d992b16ec</id>
<content type='text'>
The check that was added to nfs_xdev_get_sb() to work around broken
servers, works fine for NFSv2, but causes mountpoint crossing on NFSv3 to
always return ESTALE.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The check that was added to nfs_xdev_get_sb() to work around broken
servers, works fine for NFSv2, but causes mountpoint crossing on NFSv3 to
always return ESTALE.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Clean up new multi-segment direct I/O changes</title>
<updated>2007-11-26T21:32:40+00:00</updated>
<author>
<name>Chuck Lever</name>
<email>chuck.lever@oracle.com</email>
</author>
<published>2007-11-12T17:17:03+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=02fe494619d525ea803ab1f4f671186dc8a52f7a'/>
<id>02fe494619d525ea803ab1f4f671186dc8a52f7a</id>
<content type='text'>
Simplify calling sequence of nfs_direct_{read,write}_schedule(), and
rename them to reflect their new role.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Simplify calling sequence of nfs_direct_{read,write}_schedule(), and
rename them to reflect their new role.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
