<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/nfs/client.c, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-10-30T16:43:10Z</updated>
<entry>
<title>nfs: fix duplicate proc entries</title>
<updated>2014-10-30T16:43:10Z</updated>
<author>
<name>Fabian Frederick</name>
</author>
<published>2014-09-24T16:56:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=40456158e3c0f2aacd846a8d24b08916dc358174'/>
<id>urn:sha1:40456158e3c0f2aacd846a8d24b08916dc358174</id>
<content type='text'>
commit 2f3169fb18f4643ac9a6a097a6a6c71f0b2cef75 upstream.

Commit 65b38851a174
("NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes")

updated the following function:
static int nfs_volume_list_open(struct inode *inode, struct file *file)

it used &amp;nfs_server_list_ops instead of &amp;nfs_volume_list_ops
which means cat /proc/fs/nfsfs/volumes = /proc/fs/nfsfs/servers

Signed-off-by: Fabian Frederick &lt;fabf@skynet.be&gt;
Fixes: 65b38851a174 (NFS: Fix /proc/fs/nfsfs/servers and...)
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>nfs: fix kernel warning when removing proc entry</title>
<updated>2014-09-08T23:41:36Z</updated>
<author>
<name>Cong Wang</name>
</author>
<published>2014-09-08T23:17:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=21e81002f9788a3af591416b6dec60d7b67f2fb2'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>Merge tag 'nfs-for-3.17-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs</title>
<updated>2014-08-14T00:13:19Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2014-08-14T00:13:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=06b8ab55289345ab191bf4bf0e4acc6d4bdf293d'/>
<id>urn:sha1:06b8ab55289345ab191bf4bf0e4acc6d4bdf293d</id>
<content type='text'>
Pull NFS client updates from Trond Myklebust:
 "Highlights include:

   - stable fix for a bug in nfs3_list_one_acl()
   - speed up NFS path walks by supporting LOOKUP_RCU
   - more read/write code cleanups
   - pNFS fixes for layout return on close
   - fixes for the RCU handling in the rpcsec_gss code
   - more NFS/RDMA fixes"

* tag 'nfs-for-3.17-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (79 commits)
  nfs: reject changes to resvport and sharecache during remount
  NFS: Avoid infinite loop when RELEASE_LOCKOWNER getting expired error
  SUNRPC: remove all refcounting of groupinfo from rpcauth_lookupcred
  NFS: fix two problems in lookup_revalidate in RCU-walk
  NFS: allow lockless access to access_cache
  NFS: teach nfs_lookup_verify_inode to handle LOOKUP_RCU
  NFS: teach nfs_neg_need_reval to understand LOOKUP_RCU
  NFS: support RCU_WALK in nfs_permission()
  sunrpc/auth: allow lockless (rcu) lookup of credential cache.
  NFS: prepare for RCU-walk support but pushing tests later in code.
  NFS: nfs4_lookup_revalidate: only evaluate parent if it will be used.
  NFS: add checks for returned value of try_module_get()
  nfs: clear_request_commit while holding i_lock
  pnfs: add pnfs_put_lseg_async
  pnfs: find swapped pages on pnfs commit lists too
  nfs: fix comment and add warn_on for PG_INODE_REF
  nfs: check wait_on_bit_lock err in page_group_lock
  sunrpc: remove "ec" argument from encrypt_v2 operation
  sunrpc: clean up sparse endianness warnings in gss_krb5_wrap.c
  sunrpc: clean up sparse endianness warnings in gss_krb5_seal.c
  ...
</content>
</entry>
<entry>
<title>NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes</title>
<updated>2014-08-04T16:28:32Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2014-07-31T11:35:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=65b38851a17472d31fec9019fc3a55b0802dab88'/>
<id>urn:sha1:65b38851a17472d31fec9019fc3a55b0802dab88</id>
<content type='text'>
The usage of pid_ns-&gt;child_reaper-&gt;nsproxy-&gt;net_ns in
nfs_server_list_open and nfs_client_list_open is not safe.

/proc for a pid namespace can remain mounted after the all of the
process in that pid namespace have exited.  There are also times
before the initial process in a pid namespace has started or after the
initial process in a pid namespace has exited where
pid_ns-&gt;child_reaper can be NULL or stale.  Making the idiom
pid_ns-&gt;child_reaper-&gt;nsproxy a double whammy of problems.

Luckily all that needs to happen is to move /proc/fs/nfsfs/servers and
/proc/fs/nfsfs/volumes under /proc/net to /proc/net/nfsfs/servers and
/proc/net/nfsfs/volumes and add a symlink from the original location,
and to use seq_open_net as it has been designed.

Cc: stable@vger.kernel.org
Cc: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
Cc: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>NFS: add checks for returned value of try_module_get()</title>
<updated>2014-08-03T21:14:10Z</updated>
<author>
<name>Alexey Khoroshilov</name>
</author>
<published>2014-07-17T23:11:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f70ef96b176bdb3b75230ec68850d83736b387b'/>
<id>urn:sha1:1f70ef96b176bdb3b75230ec68850d83736b387b</id>
<content type='text'>
There is a couple of places in client code where returned value
of try_module_get() is ignored. As a result there is a small chance
to premature unload module because of unbalanced refcounting.

The patch adds error handling in that places.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov &lt;khoroshilov@ispras.ru&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>nfs4: copy acceptor name from context to nfs_client</title>
<updated>2014-07-12T22:41:25Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2014-06-22T00:52:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f11b2a1cfbf5dd783eb55cb470509d06e20d1c78'/>
<id>urn:sha1:f11b2a1cfbf5dd783eb55cb470509d06e20d1c78</id>
<content type='text'>
The current CB_COMPOUND handling code tries to compare the principal
name of the request with the cl_hostname in the client. This is not
guaranteed to ever work, particularly if the client happened to mount
a CNAME of the server or a non-fqdn.

Fix this by instead comparing the cr_principal string with the acceptor
name that we get from gssd. In the event that gssd didn't send one
down (i.e. it was too old), then we fall back to trying to use the
cl_hostname as we do today.

Signed-off-by: Jeff Layton &lt;jlayton@poochiereds.net&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>nfs: check hostname in nfs_get_client</title>
<updated>2014-07-08T18:30:03Z</updated>
<author>
<name>Peng Tao</name>
</author>
<published>2014-07-08T03:45:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=31434f496abb9f3410b10f541462fe58613dd3ad'/>
<id>urn:sha1:31434f496abb9f3410b10f541462fe58613dd3ad</id>
<content type='text'>
We reference cl_hostname in many places. Add a check to make
sure it exists.

Signed-off-by: Peng Tao &lt;tao.peng@primarydata.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFS: cache parsed auth_info in nfs_server</title>
<updated>2013-10-28T19:37:43Z</updated>
<author>
<name>Weston Andros Adamson</name>
</author>
<published>2013-10-18T19:15:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0f5f49b8b3593309fd3c3a2080a5fd465afdbe16'/>
<id>urn:sha1:0f5f49b8b3593309fd3c3a2080a5fd465afdbe16</id>
<content type='text'>
Cache the auth_info structure in nfs_server and pass these values to submounts.

This lays the groundwork for supporting multiple sec= options.

Signed-off-by: Weston Andros Adamson &lt;dros@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: separate passed security flavs from selected</title>
<updated>2013-10-28T19:36:58Z</updated>
<author>
<name>Weston Andros Adamson</name>
</author>
<published>2013-10-18T19:15:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a3f73c27afff9590a4432879b7145289cb89cf0a'/>
<id>urn:sha1:a3f73c27afff9590a4432879b7145289cb89cf0a</id>
<content type='text'>
When filling parsed_mount_data, store the parsed sec= mount option in
the new struct nfs_auth_info and the chosen flavor in selected_flavor.

This patch lays the groundwork for supporting multiple sec= options.

Signed-off-by: Weston Andros Adamson &lt;dros@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: Add nfs4_update_server</title>
<updated>2013-10-28T19:22:29Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2013-10-17T18:12:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=32e62b7c3ef095eccbb6a8c96fddf05dacc749df'/>
<id>urn:sha1:32e62b7c3ef095eccbb6a8c96fddf05dacc749df</id>
<content type='text'>
New function nfs4_update_server() moves an nfs_server to a different
nfs_client.  This is done as part of migration recovery.

Though it may be appealing to think of them as the same thing,
migration recovery is not the same as following a referral.

For a referral, the client has not descended into the file system
yet: it has no nfs_server, no super block, no inodes or open state.
It is enough to simply instantiate the nfs_server and super block,
and perform a referral mount.

For a migration, however, we have all of those things already, and
they have to be moved to a different nfs_client.  No local namespace
changes are needed here.

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