<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/fs/nfs, branch v3.17</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>NFSv4: Fix another bug in the close/open_downgrade code</title>
<updated>2014-09-18T17:04:22+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2014-09-18T15:51:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=cd9288ffaea4359d5cfe2b8d264911506aed26a4'/>
<id>cd9288ffaea4359d5cfe2b8d264911506aed26a4</id>
<content type='text'>
James Drew reports another bug whereby the NFS client is now sending
an OPEN_DOWNGRADE in a situation where it should really have sent a
CLOSE: the client is opening the file for O_RDWR, but then trying to
do a downgrade to O_RDONLY, which is not allowed by the NFSv4 spec.

Reported-by: James Drews &lt;drews@engr.wisc.edu&gt;
Link: http://lkml.kernel.org/r/541AD7E5.8020409@engr.wisc.edu
Fixes: aee7af356e15 (NFSv4: Fix problems with close in the presence...)
Cc: stable@vger.kernel.org # 2.6.33+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
James Drew reports another bug whereby the NFS client is now sending
an OPEN_DOWNGRADE in a situation where it should really have sent a
CLOSE: the client is opening the file for O_RDWR, but then trying to
do a downgrade to O_RDONLY, which is not allowed by the NFSv4 spec.

Reported-by: James Drews &lt;drews@engr.wisc.edu&gt;
Link: http://lkml.kernel.org/r/541AD7E5.8020409@engr.wisc.edu
Fixes: aee7af356e15 (NFSv4: Fix problems with close in the presence...)
Cc: stable@vger.kernel.org # 2.6.33+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv4: nfs4_state_manager() vs. nfs_server_remove_lists()</title>
<updated>2014-09-18T17:04:21+00:00</updated>
<author>
<name>Steve Dickson</name>
<email>steved@redhat.com</email>
</author>
<published>2014-09-18T13:13:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=080af20cc945d110f9912d01cf6b66f94a375b8d'/>
<id>080af20cc945d110f9912d01cf6b66f94a375b8d</id>
<content type='text'>
There is a race between nfs4_state_manager() and
nfs_server_remove_lists() that happens during a nfsv3 mount.

The v3 mount notices there is already a supper block so
nfs_server_remove_lists() called which uses the nfs_client_lock
spin lock to synchronize access to the client list.

At the same time nfs4_state_manager() is running through
the client list looking for work to do, using the same
lock. When nfs4_state_manager() wins the race to the
list, a v3 client pointer is found and not ignored
properly which causes the panic.

Moving some protocol checks before the state checking
avoids the panic.

CC: Stable Tree &lt;stable@vger.kernel.org&gt;
Signed-off-by: Steve Dickson &lt;steved@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a race between nfs4_state_manager() and
nfs_server_remove_lists() that happens during a nfsv3 mount.

The v3 mount notices there is already a supper block so
nfs_server_remove_lists() called which uses the nfs_client_lock
spin lock to synchronize access to the client list.

At the same time nfs4_state_manager() is running through
the client list looking for work to do, using the same
lock. When nfs4_state_manager() wins the race to the
list, a v3 client pointer is found and not ignored
properly which causes the panic.

Moving some protocol checks before the state checking
avoids the panic.

CC: Stable Tree &lt;stable@vger.kernel.org&gt;
Signed-off-by: Steve Dickson &lt;steved@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: remove BUG possibility in nfs4_open_and_get_state</title>
<updated>2014-09-12T17:10:53+00:00</updated>
<author>
<name>NeilBrown</name>
<email>neilb@suse.de</email>
</author>
<published>2014-09-11T06:19:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f39c01047994e66e7f3d89ddb4c6141f23349d8d'/>
<id>f39c01047994e66e7f3d89ddb4c6141f23349d8d</id>
<content type='text'>
commit 4fa2c54b5198d09607a534e2fd436581064587ed
    NFS: nfs4_do_open should add negative results to the dcache.

used "d_drop(); d_add();" to ensure that a dentry was hashed
as a negative cached entry.
This is not safe if the dentry has an non-NULL -&gt;d_inode.
It will trigger a BUG_ON in d_instantiate().
In that case, d_delete() is needed.

Also, only d_add if the dentry is currently unhashed, it seems
pointless removed and re-adding it unchanged.

Reported-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Fixes: 4fa2c54b5198d09607a534e2fd436581064587ed
Cc: Jeff Layton &lt;jeff.layton@primarydata.com&gt;
Link: http://lkml.kernel.org/r/20140908144525.GB19811@infradead.org
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
Acked-by: Jeff Layton &lt;jlayton@primarydata.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 4fa2c54b5198d09607a534e2fd436581064587ed
    NFS: nfs4_do_open should add negative results to the dcache.

used "d_drop(); d_add();" to ensure that a dentry was hashed
as a negative cached entry.
This is not safe if the dentry has an non-NULL -&gt;d_inode.
It will trigger a BUG_ON in d_instantiate().
In that case, d_delete() is needed.

Also, only d_add if the dentry is currently unhashed, it seems
pointless removed and re-adding it unchanged.

Reported-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Fixes: 4fa2c54b5198d09607a534e2fd436581064587ed
Cc: Jeff Layton &lt;jeff.layton@primarydata.com&gt;
Link: http://lkml.kernel.org/r/20140908144525.GB19811@infradead.org
Signed-off-by: NeilBrown &lt;neilb@suse.de&gt;
Acked-by: Jeff Layton &lt;jlayton@primarydata.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pnfs: fix filelayout_retry_commit when idx &gt; 0</title>
<updated>2014-09-10T19:43:45+00:00</updated>
<author>
<name>Weston Andros Adamson</name>
<email>dros@primarydata.com</email>
</author>
<published>2014-09-09T21:51:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=224ecbf5a674ec7da3a3b3ea21ca62e2853653fa'/>
<id>224ecbf5a674ec7da3a3b3ea21ca62e2853653fa</id>
<content type='text'>
filelayout_retry_commit was recently split out from alloc_ds_commits,
but was done in such a way that the bucket pointer always starts at
index 0 no matter what the @idx argument is set to.

The intention of the @idx argument is to retry commits starting at
bucket @idx. This is called when alloc_ds_commits fails for a bucket.

Signed-off-by: Weston Andros Adamson &lt;dros@primarydata.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
filelayout_retry_commit was recently split out from alloc_ds_commits,
but was done in such a way that the bucket pointer always starts at
index 0 no matter what the @idx argument is set to.

The intention of the @idx argument is to retry commits starting at
bucket @idx. This is called when alloc_ds_commits fails for a bucket.

Signed-off-by: Weston Andros Adamson &lt;dros@primarydata.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: revert "nfs4: queue free_lock_state job submission to nfsiod"</title>
<updated>2014-09-09T00:00:32+00:00</updated>
<author>
<name>Jeff Layton</name>
<email>jlayton@primarydata.com</email>
</author>
<published>2014-09-08T12:26:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0c0e0d3c091ed5b823fb89e1d46dbb9abd5830a7'/>
<id>0c0e0d3c091ed5b823fb89e1d46dbb9abd5830a7</id>
<content type='text'>
This reverts commit 49a4bda22e186c4d0eb07f4a36b5b1a378f9398d.

Christoph reported an oops due to the above commit:

generic/089 242s ...[ 2187.041239] general protection fault: 0000 [#1]
SMP
[ 2187.042899] Modules linked in:
[ 2187.044000] CPU: 0 PID: 11913 Comm: kworker/0:1 Not tainted 3.16.0-rc6+ #1151
[ 2187.044287] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[ 2187.044287] Workqueue: nfsiod free_lock_state_work
[ 2187.044287] task: ffff880072b50cd0 ti: ffff88007a4ec000 task.ti: ffff88007a4ec000
[ 2187.044287] RIP: 0010:[&lt;ffffffff81361ca6&gt;]  [&lt;ffffffff81361ca6&gt;] free_lock_state_work+0x16/0x30
[ 2187.044287] RSP: 0018:ffff88007a4efd58  EFLAGS: 00010296
[ 2187.044287] RAX: 6b6b6b6b6b6b6b6b RBX: ffff88007a947ac0 RCX: 8000000000000000
[ 2187.044287] RDX: ffffffff826af9e0 RSI: ffff88007b093c00 RDI: ffff88007b093db8
[ 2187.044287] RBP: ffff88007a4efd58 R08: ffffffff832d3e10 R09: 000001c40efc0000
[ 2187.044287] R10: 0000000000000000 R11: 0000000000059e30 R12: ffff88007fc13240
[ 2187.044287] R13: ffff88007fc18b00 R14: ffff88007b093db8 R15: 0000000000000000
[ 2187.044287] FS:  0000000000000000(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000
[ 2187.044287] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 2187.044287] CR2: 00007f93ec33fb80 CR3: 0000000079dc2000 CR4: 00000000000006f0
[ 2187.044287] Stack:
[ 2187.044287]  ffff88007a4efdd8 ffffffff810cc877 ffffffff810cc80d ffff88007fc13258
[ 2187.044287]  000000007a947af0 0000000000000000 ffffffff8353ccc8 ffffffff82b6f3d0
[ 2187.044287]  0000000000000000 ffffffff82267679 ffff88007a4efdd8 ffff88007fc13240
[ 2187.044287] Call Trace:
[ 2187.044287]  [&lt;ffffffff810cc877&gt;] process_one_work+0x1c7/0x490
[ 2187.044287]  [&lt;ffffffff810cc80d&gt;] ? process_one_work+0x15d/0x490
[ 2187.044287]  [&lt;ffffffff810cd569&gt;] worker_thread+0x119/0x4f0
[ 2187.044287]  [&lt;ffffffff810fbbad&gt;] ? trace_hardirqs_on+0xd/0x10
[ 2187.044287]  [&lt;ffffffff810cd450&gt;] ? init_pwq+0x190/0x190
[ 2187.044287]  [&lt;ffffffff810d3c6f&gt;] kthread+0xdf/0x100
[ 2187.044287]  [&lt;ffffffff810d3b90&gt;] ? __init_kthread_worker+0x70/0x70
[ 2187.044287]  [&lt;ffffffff81d9873c&gt;] ret_from_fork+0x7c/0xb0
[ 2187.044287]  [&lt;ffffffff810d3b90&gt;] ? __init_kthread_worker+0x70/0x70
[ 2187.044287] Code: 0f 1f 44 00 00 31 c0 5d c3 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 8d b7 48 fe ff ff 48 8b 87 58 fe ff ff 48 89 e5 48 8b 40 30 &lt;48&gt; 8b 00 48 8b 10 48 89 c7 48 8b 92 90 03 00 00 ff 52 28 5d c3
[ 2187.044287] RIP  [&lt;ffffffff81361ca6&gt;] free_lock_state_work+0x16/0x30
[ 2187.044287]  RSP &lt;ffff88007a4efd58&gt;
[ 2187.103626] ---[ end trace 0f11326d28e5d8fa ]---

The original reason for this patch was because the fl_release_private
operation couldn't sleep. With commit ed9814d85810 (locks: defer freeing
locks in locks_delete_lock until after i_lock has been dropped), this is
no longer a problem so we can revert this patch.

Reported-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Jeff Layton &lt;jlayton@primarydata.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Tested-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 49a4bda22e186c4d0eb07f4a36b5b1a378f9398d.

Christoph reported an oops due to the above commit:

generic/089 242s ...[ 2187.041239] general protection fault: 0000 [#1]
SMP
[ 2187.042899] Modules linked in:
[ 2187.044000] CPU: 0 PID: 11913 Comm: kworker/0:1 Not tainted 3.16.0-rc6+ #1151
[ 2187.044287] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[ 2187.044287] Workqueue: nfsiod free_lock_state_work
[ 2187.044287] task: ffff880072b50cd0 ti: ffff88007a4ec000 task.ti: ffff88007a4ec000
[ 2187.044287] RIP: 0010:[&lt;ffffffff81361ca6&gt;]  [&lt;ffffffff81361ca6&gt;] free_lock_state_work+0x16/0x30
[ 2187.044287] RSP: 0018:ffff88007a4efd58  EFLAGS: 00010296
[ 2187.044287] RAX: 6b6b6b6b6b6b6b6b RBX: ffff88007a947ac0 RCX: 8000000000000000
[ 2187.044287] RDX: ffffffff826af9e0 RSI: ffff88007b093c00 RDI: ffff88007b093db8
[ 2187.044287] RBP: ffff88007a4efd58 R08: ffffffff832d3e10 R09: 000001c40efc0000
[ 2187.044287] R10: 0000000000000000 R11: 0000000000059e30 R12: ffff88007fc13240
[ 2187.044287] R13: ffff88007fc18b00 R14: ffff88007b093db8 R15: 0000000000000000
[ 2187.044287] FS:  0000000000000000(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000
[ 2187.044287] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 2187.044287] CR2: 00007f93ec33fb80 CR3: 0000000079dc2000 CR4: 00000000000006f0
[ 2187.044287] Stack:
[ 2187.044287]  ffff88007a4efdd8 ffffffff810cc877 ffffffff810cc80d ffff88007fc13258
[ 2187.044287]  000000007a947af0 0000000000000000 ffffffff8353ccc8 ffffffff82b6f3d0
[ 2187.044287]  0000000000000000 ffffffff82267679 ffff88007a4efdd8 ffff88007fc13240
[ 2187.044287] Call Trace:
[ 2187.044287]  [&lt;ffffffff810cc877&gt;] process_one_work+0x1c7/0x490
[ 2187.044287]  [&lt;ffffffff810cc80d&gt;] ? process_one_work+0x15d/0x490
[ 2187.044287]  [&lt;ffffffff810cd569&gt;] worker_thread+0x119/0x4f0
[ 2187.044287]  [&lt;ffffffff810fbbad&gt;] ? trace_hardirqs_on+0xd/0x10
[ 2187.044287]  [&lt;ffffffff810cd450&gt;] ? init_pwq+0x190/0x190
[ 2187.044287]  [&lt;ffffffff810d3c6f&gt;] kthread+0xdf/0x100
[ 2187.044287]  [&lt;ffffffff810d3b90&gt;] ? __init_kthread_worker+0x70/0x70
[ 2187.044287]  [&lt;ffffffff81d9873c&gt;] ret_from_fork+0x7c/0xb0
[ 2187.044287]  [&lt;ffffffff810d3b90&gt;] ? __init_kthread_worker+0x70/0x70
[ 2187.044287] Code: 0f 1f 44 00 00 31 c0 5d c3 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 8d b7 48 fe ff ff 48 8b 87 58 fe ff ff 48 89 e5 48 8b 40 30 &lt;48&gt; 8b 00 48 8b 10 48 89 c7 48 8b 92 90 03 00 00 ff 52 28 5d c3
[ 2187.044287] RIP  [&lt;ffffffff81361ca6&gt;] free_lock_state_work+0x16/0x30
[ 2187.044287]  RSP &lt;ffff88007a4efd58&gt;
[ 2187.103626] ---[ end trace 0f11326d28e5d8fa ]---

The original reason for this patch was because the fl_release_private
operation couldn't sleep. With commit ed9814d85810 (locks: defer freeing
locks in locks_delete_lock until after i_lock has been dropped), this is
no longer a problem so we can revert this patch.

Reported-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Jeff Layton &lt;jlayton@primarydata.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Tested-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: fix kernel warning when removing proc entry</title>
<updated>2014-09-08T23:41:36+00:00</updated>
<author>
<name>Cong Wang</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2014-09-08T23:17:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=21e81002f9788a3af591416b6dec60d7b67f2fb2'/>
<id>21e81002f9788a3af591416b6dec60d7b67f2fb2</id>
<content type='text'>
I saw the following kernel warning:

[ 1852.321222] ------------[ cut here ]------------
[ 1852.326527] WARNING: CPU: 0 PID: 118 at fs/proc/generic.c:521 remove_proc_entry+0x154/0x16b()
[ 1852.335630] remove_proc_entry: removing non-empty directory 'fs/nfsfs', leaking at least 'volumes'
[ 1852.344084] CPU: 0 PID: 118 Comm: kworker/u8:2 Not tainted 3.16.0+ #540
[ 1852.350036] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 1852.354992] Workqueue: netns cleanup_net
[ 1852.358701]  0000000000000000 ffff880116f2fbd0 ffffffff819c03e9 ffff880116f2fc18
[ 1852.366474]  ffff880116f2fc08 ffffffff810744ee ffffffff811e0e6e ffff8800d4e96238
[ 1852.373507]  ffffffff81dbe665 ffff8800d46a5948 0000000000000005 ffff880116f2fc68
[ 1852.380224] Call Trace:
[ 1852.381976]  [&lt;ffffffff819c03e9&gt;] dump_stack+0x4d/0x66
[ 1852.385495]  [&lt;ffffffff810744ee&gt;] warn_slowpath_common+0x7a/0x93
[ 1852.389869]  [&lt;ffffffff811e0e6e&gt;] ? remove_proc_entry+0x154/0x16b
[ 1852.393987]  [&lt;ffffffff8107457b&gt;] warn_slowpath_fmt+0x4c/0x4e
[ 1852.397999]  [&lt;ffffffff811e0e6e&gt;] remove_proc_entry+0x154/0x16b
[ 1852.402034]  [&lt;ffffffff8129c73d&gt;] nfs_fs_proc_net_exit+0x53/0x56
[ 1852.406136]  [&lt;ffffffff812a103b&gt;] nfs_net_exit+0x12/0x1d
[ 1852.409774]  [&lt;ffffffff81785bc9&gt;] ops_exit_list+0x44/0x55
[ 1852.413529]  [&lt;ffffffff81786389&gt;] cleanup_net+0xee/0x182
[ 1852.417198]  [&lt;ffffffff81088c9e&gt;] process_one_work+0x209/0x40d
[ 1852.502320]  [&lt;ffffffff81088bf7&gt;] ? process_one_work+0x162/0x40d
[ 1852.587629]  [&lt;ffffffff810890c1&gt;] worker_thread+0x1f0/0x2c7
[ 1852.673291]  [&lt;ffffffff81088ed1&gt;] ? process_scheduled_works+0x2f/0x2f
[ 1852.759470]  [&lt;ffffffff8108e079&gt;] kthread+0xc9/0xd1
[ 1852.843099]  [&lt;ffffffff8109427f&gt;] ? finish_task_switch+0x3a/0xce
[ 1852.926518]  [&lt;ffffffff8108dfb0&gt;] ? __kthread_parkme+0x61/0x61
[ 1853.008565]  [&lt;ffffffff819cbeac&gt;] ret_from_fork+0x7c/0xb0
[ 1853.076477]  [&lt;ffffffff8108dfb0&gt;] ? __kthread_parkme+0x61/0x61
[ 1853.140653] ---[ end trace 69c4c6617f78e32d ]---

It looks wrong that we add "/proc/net/nfsfs" in nfs_fs_proc_net_init()
while remove "/proc/fs/nfsfs" in nfs_fs_proc_net_exit().

Fixes: commit 65b38851a17 (NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes)
Cc: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Cc: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
Cc: Dan Aloni &lt;dan@kernelim.com&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
[Trond: replace uses of remove_proc_entry() with remove_proc_subtree()
as suggested by Al Viro]
Cc: stable@vger.kernel.org # 3.4.x : 65b38851a17: NFS: Fix /proc/fs/nfsfs/servers
Cc: stable@vger.kernel.org # 3.4.x
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I saw the following kernel warning:

[ 1852.321222] ------------[ cut here ]------------
[ 1852.326527] WARNING: CPU: 0 PID: 118 at fs/proc/generic.c:521 remove_proc_entry+0x154/0x16b()
[ 1852.335630] remove_proc_entry: removing non-empty directory 'fs/nfsfs', leaking at least 'volumes'
[ 1852.344084] CPU: 0 PID: 118 Comm: kworker/u8:2 Not tainted 3.16.0+ #540
[ 1852.350036] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 1852.354992] Workqueue: netns cleanup_net
[ 1852.358701]  0000000000000000 ffff880116f2fbd0 ffffffff819c03e9 ffff880116f2fc18
[ 1852.366474]  ffff880116f2fc08 ffffffff810744ee ffffffff811e0e6e ffff8800d4e96238
[ 1852.373507]  ffffffff81dbe665 ffff8800d46a5948 0000000000000005 ffff880116f2fc68
[ 1852.380224] Call Trace:
[ 1852.381976]  [&lt;ffffffff819c03e9&gt;] dump_stack+0x4d/0x66
[ 1852.385495]  [&lt;ffffffff810744ee&gt;] warn_slowpath_common+0x7a/0x93
[ 1852.389869]  [&lt;ffffffff811e0e6e&gt;] ? remove_proc_entry+0x154/0x16b
[ 1852.393987]  [&lt;ffffffff8107457b&gt;] warn_slowpath_fmt+0x4c/0x4e
[ 1852.397999]  [&lt;ffffffff811e0e6e&gt;] remove_proc_entry+0x154/0x16b
[ 1852.402034]  [&lt;ffffffff8129c73d&gt;] nfs_fs_proc_net_exit+0x53/0x56
[ 1852.406136]  [&lt;ffffffff812a103b&gt;] nfs_net_exit+0x12/0x1d
[ 1852.409774]  [&lt;ffffffff81785bc9&gt;] ops_exit_list+0x44/0x55
[ 1852.413529]  [&lt;ffffffff81786389&gt;] cleanup_net+0xee/0x182
[ 1852.417198]  [&lt;ffffffff81088c9e&gt;] process_one_work+0x209/0x40d
[ 1852.502320]  [&lt;ffffffff81088bf7&gt;] ? process_one_work+0x162/0x40d
[ 1852.587629]  [&lt;ffffffff810890c1&gt;] worker_thread+0x1f0/0x2c7
[ 1852.673291]  [&lt;ffffffff81088ed1&gt;] ? process_scheduled_works+0x2f/0x2f
[ 1852.759470]  [&lt;ffffffff8108e079&gt;] kthread+0xc9/0xd1
[ 1852.843099]  [&lt;ffffffff8109427f&gt;] ? finish_task_switch+0x3a/0xce
[ 1852.926518]  [&lt;ffffffff8108dfb0&gt;] ? __kthread_parkme+0x61/0x61
[ 1853.008565]  [&lt;ffffffff819cbeac&gt;] ret_from_fork+0x7c/0xb0
[ 1853.076477]  [&lt;ffffffff8108dfb0&gt;] ? __kthread_parkme+0x61/0x61
[ 1853.140653] ---[ end trace 69c4c6617f78e32d ]---

It looks wrong that we add "/proc/net/nfsfs" in nfs_fs_proc_net_init()
while remove "/proc/fs/nfsfs" in nfs_fs_proc_net_exit().

Fixes: commit 65b38851a17 (NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes)
Cc: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Cc: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
Cc: Dan Aloni &lt;dan@kernelim.com&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
[Trond: replace uses of remove_proc_entry() with remove_proc_subtree()
as suggested by Al Viro]
Cc: stable@vger.kernel.org # 3.4.x : 65b38851a17: NFS: Fix /proc/fs/nfsfs/servers
Cc: stable@vger.kernel.org # 3.4.x
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv3: Fix another acl regression</title>
<updated>2014-08-26T20:17:48+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2014-08-24T18:46:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f87d928f6d98644d39809a013a22f981d39017cf'/>
<id>f87d928f6d98644d39809a013a22f981d39017cf</id>
<content type='text'>
When creating a new object on the NFS server, we should not be sending
posix setacl requests unless the preceding posix_acl_create returned a
non-trivial acl. Doing so, causes Solaris servers in particular to
return an EINVAL.

Fixes: 013cdf1088d72 (nfs: use generic posix ACL infrastructure,,,)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1132786
Cc: stable@vger.kernel.org # 3.14+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When creating a new object on the NFS server, we should not be sending
posix setacl requests unless the preceding posix_acl_create returned a
non-trivial acl. Doing so, causes Solaris servers in particular to
return an EINVAL.

Fixes: 013cdf1088d72 (nfs: use generic posix ACL infrastructure,,,)
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1132786
Cc: stable@vger.kernel.org # 3.14+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv4: Don't clear the open state when we just did an OPEN_DOWNGRADE</title>
<updated>2014-08-26T20:17:48+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2014-08-26T02:09:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=412f6c4c26fb1eba8844290663837561ac53fa6e'/>
<id>412f6c4c26fb1eba8844290663837561ac53fa6e</id>
<content type='text'>
If we did an OPEN_DOWNGRADE, then the right thing to do on success, is
to apply the new open mode to the struct nfs4_state. Instead, we were
unconditionally clearing the state, making it appear to our state
machinery as if we had just performed a CLOSE.

Fixes: 226056c5c312b (NFSv4: Use correct locking when updating nfs4_state...)
Cc: stable@vger.kernel.org # 3.15+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we did an OPEN_DOWNGRADE, then the right thing to do on success, is
to apply the new open mode to the struct nfs4_state. Instead, we were
unconditionally clearing the state, making it appear to our state
machinery as if we had just performed a CLOSE.

Fixes: 226056c5c312b (NFSv4: Use correct locking when updating nfs4_state...)
Cc: stable@vger.kernel.org # 3.15+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv4: Fix problems with close in the presence of a delegation</title>
<updated>2014-08-26T20:17:48+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2014-08-26T02:33:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=aee7af356e151494d5014f57b33460b162f181b5'/>
<id>aee7af356e151494d5014f57b33460b162f181b5</id>
<content type='text'>
In the presence of delegations, we can no longer assume that the
state-&gt;n_rdwr, state-&gt;n_rdonly, state-&gt;n_wronly reflect the open
stateid share mode, and so we need to calculate the initial value
for calldata-&gt;arg.fmode using the state-&gt;flags.

Reported-by: James Drews &lt;drews@engr.wisc.edu&gt;
Fixes: 88069f77e1ac5 (NFSv41: Fix a potential state leakage when...)
Cc: stable@vger.kernel.org # 2.6.33+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the presence of delegations, we can no longer assume that the
state-&gt;n_rdwr, state-&gt;n_rdonly, state-&gt;n_wronly reflect the open
stateid share mode, and so we need to calculate the initial value
for calldata-&gt;arg.fmode using the state-&gt;flags.

Reported-by: James Drews &lt;drews@engr.wisc.edu&gt;
Fixes: 88069f77e1ac5 (NFSv41: Fix a potential state leakage when...)
Cc: stable@vger.kernel.org # 2.6.33+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: Don't busy-wait on SIGKILL in __nfs_iocounter_wait</title>
<updated>2014-08-22T22:04:44+00:00</updated>
<author>
<name>David Jeffery</name>
<email>djeffery@redhat.com</email>
</author>
<published>2014-08-05T15:19:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=92a56555bd576c61b27a5cab9f38a33a1e9a1df5'/>
<id>92a56555bd576c61b27a5cab9f38a33a1e9a1df5</id>
<content type='text'>
If a SIGKILL is sent to a task waiting in __nfs_iocounter_wait,
it will busy-wait or soft lockup in its while loop.
nfs_wait_bit_killable won't sleep, and the loop won't exit on
the error return.

Stop the busy-wait by breaking out of the loop when
nfs_wait_bit_killable returns an error.

Signed-off-by: David Jeffery &lt;djeffery@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a SIGKILL is sent to a task waiting in __nfs_iocounter_wait,
it will busy-wait or soft lockup in its while loop.
nfs_wait_bit_killable won't sleep, and the loop won't exit on
the error return.

Stop the busy-wait by breaking out of the loop when
nfs_wait_bit_killable returns an error.

Signed-off-by: David Jeffery &lt;djeffery@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
