<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/fs/nfsd, branch v4.2</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>nfsd: do nfs4_check_fh in nfs4_check_file instead of nfs4_check_olstateid</title>
<updated>2015-07-31T20:30:26+00:00</updated>
<author>
<name>Jeff Layton</name>
<email>jlayton@poochiereds.net</email>
</author>
<published>2015-07-30T10:57:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8fcd461db7c09337b6d2e22d25eb411123f379e3'/>
<id>8fcd461db7c09337b6d2e22d25eb411123f379e3</id>
<content type='text'>
Currently, preprocess_stateid_op calls nfs4_check_olstateid which
verifies that the open stateid corresponds to the current filehandle in the
call by calling nfs4_check_fh.

If the stateid is a NFS4_DELEG_STID however, then no such check is done.
This could cause incorrect enforcement of permissions, because the
nfsd_permission() call in nfs4_check_file uses current the current
filehandle, but any subsequent IO operation will use the file descriptor
in the stateid.

Move the call to nfs4_check_fh into nfs4_check_file instead so that it
can be done for all stateid types.

Signed-off-by: Jeff Layton &lt;jeff.layton@primarydata.com&gt;
Cc: stable@vger.kernel.org
[bfields: moved fh check to avoid NULL deref in special stateid case]
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, preprocess_stateid_op calls nfs4_check_olstateid which
verifies that the open stateid corresponds to the current filehandle in the
call by calling nfs4_check_fh.

If the stateid is a NFS4_DELEG_STID however, then no such check is done.
This could cause incorrect enforcement of permissions, because the
nfsd_permission() call in nfs4_check_file uses current the current
filehandle, but any subsequent IO operation will use the file descriptor
in the stateid.

Move the call to nfs4_check_fh into nfs4_check_file instead so that it
can be done for all stateid types.

Signed-off-by: Jeff Layton &lt;jeff.layton@primarydata.com&gt;
Cc: stable@vger.kernel.org
[bfields: moved fh check to avoid NULL deref in special stateid case]
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: Fix a file leak on nfsd4_layout_setlease failure</title>
<updated>2015-07-20T18:58:22+00:00</updated>
<author>
<name>Kinglong Mee</name>
<email>kinglongmee@gmail.com</email>
</author>
<published>2015-07-09T09:38:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1ca4b88e7de23f6f86d2009101fe42d5b9dbf3de'/>
<id>1ca4b88e7de23f6f86d2009101fe42d5b9dbf3de</id>
<content type='text'>
If nfsd4_layout_setlease fails, nfsd will not put ls-&gt;ls_file.

Fix commit c5c707f96f "nfsd: implement pNFS layout recalls".

Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If nfsd4_layout_setlease fails, nfsd will not put ls-&gt;ls_file.

Fix commit c5c707f96f "nfsd: implement pNFS layout recalls".

Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: Drop BUG_ON and ignore SECLABEL on absent filesystem</title>
<updated>2015-07-20T18:58:22+00:00</updated>
<author>
<name>Kinglong Mee</name>
<email>kinglongmee@gmail.com</email>
</author>
<published>2015-07-07T02:16:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c2227a39a078473115910512aa0f8d53bd915e60'/>
<id>c2227a39a078473115910512aa0f8d53bd915e60</id>
<content type='text'>
On an absent filesystem (one served by another server), we need to be
able to handle requests for certain attributest (like fs_locations, so
the client can find out which server does have the filesystem), but
others we can't.

We forgot to take that into account when adding another attribute
bitmask work for the SECURITY_LABEL attribute.

There an export entry with the "refer" option can result in:

[   88.414272] kernel BUG at fs/nfsd/nfs4xdr.c:2249!
[   88.414828] invalid opcode: 0000 [#1] SMP
[   88.415368] Modules linked in: rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache nfsd xfs libcrc32c iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi iosf_mbi ppdev btrfs coretemp crct10dif_pclmul crc32_pclmul crc32c_intel xor ghash_clmulni_intel raid6_pq vmw_balloon parport_pc parport i2c_piix4 shpchp vmw_vmci acpi_cpufreq auth_rpcgss nfs_acl lockd grace sunrpc vmwgfx drm_kms_helper ttm drm mptspi mptscsih serio_raw mptbase e1000 scsi_transport_spi ata_generic pata_acpi [last unloaded: nfsd]
[   88.417827] CPU: 0 PID: 2116 Comm: nfsd Not tainted 4.0.7-300.fc22.x86_64 #1
[   88.418448] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014
[   88.419093] task: ffff880079146d50 ti: ffff8800785d8000 task.ti: ffff8800785d8000
[   88.419729] RIP: 0010:[&lt;ffffffffa04b3c10&gt;]  [&lt;ffffffffa04b3c10&gt;] nfsd4_encode_fattr+0x820/0x1f00 [nfsd]
[   88.420376] RSP: 0000:ffff8800785db998  EFLAGS: 00010206
[   88.421027] RAX: 0000000000000001 RBX: 000000000018091a RCX: ffff88006668b980
[   88.421676] RDX: 00000000fffef7fc RSI: 0000000000000000 RDI: ffff880078d05000
[   88.422315] RBP: ffff8800785dbb58 R08: ffff880078d043f8 R09: ffff880078d4a000
[   88.422968] R10: 0000000000010000 R11: 0000000000000002 R12: 0000000000b0a23a
[   88.423612] R13: ffff880078d05000 R14: ffff880078683100 R15: ffff88006668b980
[   88.424295] FS:  0000000000000000(0000) GS:ffff88007c600000(0000) knlGS:0000000000000000
[   88.424944] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   88.425597] CR2: 00007f40bc370f90 CR3: 0000000035af5000 CR4: 00000000001407f0
[   88.426285] Stack:
[   88.426921]  ffff8800785dbaa8 ffffffffa049e4af ffff8800785dba08 ffffffff813298f0
[   88.427585]  ffff880078683300 ffff8800769b0de8 0000089d00000001 0000000087f805e0
[   88.428228]  ffff880000000000 ffff880079434a00 0000000000000000 ffff88006668b980
[   88.428877] Call Trace:
[   88.429527]  [&lt;ffffffffa049e4af&gt;] ? exp_get_by_name+0x7f/0xb0 [nfsd]
[   88.430168]  [&lt;ffffffff813298f0&gt;] ? inode_doinit_with_dentry+0x210/0x6a0
[   88.430807]  [&lt;ffffffff8123833e&gt;] ? d_lookup+0x2e/0x60
[   88.431449]  [&lt;ffffffff81236133&gt;] ? dput+0x33/0x230
[   88.432097]  [&lt;ffffffff8123f214&gt;] ? mntput+0x24/0x40
[   88.432719]  [&lt;ffffffff812272b2&gt;] ? path_put+0x22/0x30
[   88.433340]  [&lt;ffffffffa049ac87&gt;] ? nfsd_cross_mnt+0xb7/0x1c0 [nfsd]
[   88.433954]  [&lt;ffffffffa04b54e0&gt;] nfsd4_encode_dirent+0x1b0/0x3d0 [nfsd]
[   88.434601]  [&lt;ffffffffa04b5330&gt;] ? nfsd4_encode_getattr+0x40/0x40 [nfsd]
[   88.435172]  [&lt;ffffffffa049c991&gt;] nfsd_readdir+0x1c1/0x2a0 [nfsd]
[   88.435710]  [&lt;ffffffffa049a530&gt;] ? nfsd_direct_splice_actor+0x20/0x20 [nfsd]
[   88.436447]  [&lt;ffffffffa04abf30&gt;] nfsd4_encode_readdir+0x120/0x220 [nfsd]
[   88.437011]  [&lt;ffffffffa04b58cd&gt;] nfsd4_encode_operation+0x7d/0x190 [nfsd]
[   88.437566]  [&lt;ffffffffa04aa6dd&gt;] nfsd4_proc_compound+0x24d/0x6f0 [nfsd]
[   88.438157]  [&lt;ffffffffa0496103&gt;] nfsd_dispatch+0xc3/0x220 [nfsd]
[   88.438680]  [&lt;ffffffffa006f0cb&gt;] svc_process_common+0x43b/0x690 [sunrpc]
[   88.439192]  [&lt;ffffffffa0070493&gt;] svc_process+0x103/0x1b0 [sunrpc]
[   88.439694]  [&lt;ffffffffa0495a57&gt;] nfsd+0x117/0x190 [nfsd]
[   88.440194]  [&lt;ffffffffa0495940&gt;] ? nfsd_destroy+0x90/0x90 [nfsd]
[   88.440697]  [&lt;ffffffff810bb728&gt;] kthread+0xd8/0xf0
[   88.441260]  [&lt;ffffffff810bb650&gt;] ? kthread_worker_fn+0x180/0x180
[   88.441762]  [&lt;ffffffff81789e58&gt;] ret_from_fork+0x58/0x90
[   88.442322]  [&lt;ffffffff810bb650&gt;] ? kthread_worker_fn+0x180/0x180
[   88.442879] Code: 0f 84 93 05 00 00 83 f8 ea c7 85 a0 fe ff ff 00 00 27 30 0f 84 ba fe ff ff 85 c0 0f 85 a5 fe ff ff e9 e3 f9 ff ff 0f 1f 44 00 00 &lt;0f&gt; 0b 66 0f 1f 44 00 00 be 04 00 00 00 4c 89 ef 4c 89 8d 68 fe
[   88.444052] RIP  [&lt;ffffffffa04b3c10&gt;] nfsd4_encode_fattr+0x820/0x1f00 [nfsd]
[   88.444658]  RSP &lt;ffff8800785db998&gt;
[   88.445232] ---[ end trace 6cb9d0487d94a29f ]---

Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On an absent filesystem (one served by another server), we need to be
able to handle requests for certain attributest (like fs_locations, so
the client can find out which server does have the filesystem), but
others we can't.

We forgot to take that into account when adding another attribute
bitmask work for the SECURITY_LABEL attribute.

There an export entry with the "refer" option can result in:

[   88.414272] kernel BUG at fs/nfsd/nfs4xdr.c:2249!
[   88.414828] invalid opcode: 0000 [#1] SMP
[   88.415368] Modules linked in: rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache nfsd xfs libcrc32c iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi iosf_mbi ppdev btrfs coretemp crct10dif_pclmul crc32_pclmul crc32c_intel xor ghash_clmulni_intel raid6_pq vmw_balloon parport_pc parport i2c_piix4 shpchp vmw_vmci acpi_cpufreq auth_rpcgss nfs_acl lockd grace sunrpc vmwgfx drm_kms_helper ttm drm mptspi mptscsih serio_raw mptbase e1000 scsi_transport_spi ata_generic pata_acpi [last unloaded: nfsd]
[   88.417827] CPU: 0 PID: 2116 Comm: nfsd Not tainted 4.0.7-300.fc22.x86_64 #1
[   88.418448] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014
[   88.419093] task: ffff880079146d50 ti: ffff8800785d8000 task.ti: ffff8800785d8000
[   88.419729] RIP: 0010:[&lt;ffffffffa04b3c10&gt;]  [&lt;ffffffffa04b3c10&gt;] nfsd4_encode_fattr+0x820/0x1f00 [nfsd]
[   88.420376] RSP: 0000:ffff8800785db998  EFLAGS: 00010206
[   88.421027] RAX: 0000000000000001 RBX: 000000000018091a RCX: ffff88006668b980
[   88.421676] RDX: 00000000fffef7fc RSI: 0000000000000000 RDI: ffff880078d05000
[   88.422315] RBP: ffff8800785dbb58 R08: ffff880078d043f8 R09: ffff880078d4a000
[   88.422968] R10: 0000000000010000 R11: 0000000000000002 R12: 0000000000b0a23a
[   88.423612] R13: ffff880078d05000 R14: ffff880078683100 R15: ffff88006668b980
[   88.424295] FS:  0000000000000000(0000) GS:ffff88007c600000(0000) knlGS:0000000000000000
[   88.424944] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   88.425597] CR2: 00007f40bc370f90 CR3: 0000000035af5000 CR4: 00000000001407f0
[   88.426285] Stack:
[   88.426921]  ffff8800785dbaa8 ffffffffa049e4af ffff8800785dba08 ffffffff813298f0
[   88.427585]  ffff880078683300 ffff8800769b0de8 0000089d00000001 0000000087f805e0
[   88.428228]  ffff880000000000 ffff880079434a00 0000000000000000 ffff88006668b980
[   88.428877] Call Trace:
[   88.429527]  [&lt;ffffffffa049e4af&gt;] ? exp_get_by_name+0x7f/0xb0 [nfsd]
[   88.430168]  [&lt;ffffffff813298f0&gt;] ? inode_doinit_with_dentry+0x210/0x6a0
[   88.430807]  [&lt;ffffffff8123833e&gt;] ? d_lookup+0x2e/0x60
[   88.431449]  [&lt;ffffffff81236133&gt;] ? dput+0x33/0x230
[   88.432097]  [&lt;ffffffff8123f214&gt;] ? mntput+0x24/0x40
[   88.432719]  [&lt;ffffffff812272b2&gt;] ? path_put+0x22/0x30
[   88.433340]  [&lt;ffffffffa049ac87&gt;] ? nfsd_cross_mnt+0xb7/0x1c0 [nfsd]
[   88.433954]  [&lt;ffffffffa04b54e0&gt;] nfsd4_encode_dirent+0x1b0/0x3d0 [nfsd]
[   88.434601]  [&lt;ffffffffa04b5330&gt;] ? nfsd4_encode_getattr+0x40/0x40 [nfsd]
[   88.435172]  [&lt;ffffffffa049c991&gt;] nfsd_readdir+0x1c1/0x2a0 [nfsd]
[   88.435710]  [&lt;ffffffffa049a530&gt;] ? nfsd_direct_splice_actor+0x20/0x20 [nfsd]
[   88.436447]  [&lt;ffffffffa04abf30&gt;] nfsd4_encode_readdir+0x120/0x220 [nfsd]
[   88.437011]  [&lt;ffffffffa04b58cd&gt;] nfsd4_encode_operation+0x7d/0x190 [nfsd]
[   88.437566]  [&lt;ffffffffa04aa6dd&gt;] nfsd4_proc_compound+0x24d/0x6f0 [nfsd]
[   88.438157]  [&lt;ffffffffa0496103&gt;] nfsd_dispatch+0xc3/0x220 [nfsd]
[   88.438680]  [&lt;ffffffffa006f0cb&gt;] svc_process_common+0x43b/0x690 [sunrpc]
[   88.439192]  [&lt;ffffffffa0070493&gt;] svc_process+0x103/0x1b0 [sunrpc]
[   88.439694]  [&lt;ffffffffa0495a57&gt;] nfsd+0x117/0x190 [nfsd]
[   88.440194]  [&lt;ffffffffa0495940&gt;] ? nfsd_destroy+0x90/0x90 [nfsd]
[   88.440697]  [&lt;ffffffff810bb728&gt;] kthread+0xd8/0xf0
[   88.441260]  [&lt;ffffffff810bb650&gt;] ? kthread_worker_fn+0x180/0x180
[   88.441762]  [&lt;ffffffff81789e58&gt;] ret_from_fork+0x58/0x90
[   88.442322]  [&lt;ffffffff810bb650&gt;] ? kthread_worker_fn+0x180/0x180
[   88.442879] Code: 0f 84 93 05 00 00 83 f8 ea c7 85 a0 fe ff ff 00 00 27 30 0f 84 ba fe ff ff 85 c0 0f 85 a5 fe ff ff e9 e3 f9 ff ff 0f 1f 44 00 00 &lt;0f&gt; 0b 66 0f 1f 44 00 00 be 04 00 00 00 4c 89 ef 4c 89 8d 68 fe
[   88.444052] RIP  [&lt;ffffffffa04b3c10&gt;] nfsd4_encode_fattr+0x820/0x1f00 [nfsd]
[   88.444658]  RSP &lt;ffff8800785db998&gt;
[   88.445232] ---[ end trace 6cb9d0487d94a29f ]---

Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: wrap too long lines in nfsd4_encode_read</title>
<updated>2015-06-22T18:15:05+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2015-06-18T14:45:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=68e8bb0334dbad55285573682c38d8f6664fce68'/>
<id>68e8bb0334dbad55285573682c38d8f6664fce68</id>
<content type='text'>
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: fput rd_file from XDR encode context</title>
<updated>2015-06-22T18:15:04+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2015-06-18T14:45:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=96bcad506457cfa0c26680446eedefb616c6b079'/>
<id>96bcad506457cfa0c26680446eedefb616c6b079</id>
<content type='text'>
Remove the hack where we fput the read-specific file in generic code.
Instead we can do it in nfsd4_encode_read as that gets called for all
error cases as well.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the hack where we fput the read-specific file in generic code.
Instead we can do it in nfsd4_encode_read as that gets called for all
error cases as well.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: take struct file setup fully into nfs4_preprocess_stateid_op</title>
<updated>2015-06-22T18:15:03+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2015-06-18T14:45:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=af90f707fa6d54dbb725c4b919c976cd23cd07f2'/>
<id>af90f707fa6d54dbb725c4b919c976cd23cd07f2</id>
<content type='text'>
This patch changes nfs4_preprocess_stateid_op so it always returns
a valid struct file if it has been asked for that.  For that we
now allocate a temporary struct file for special stateids, and check
permissions if we got the file structure from the stateid.  This
ensures that all callers will get their handling of special stateids
right, and avoids code duplication.

There is a little wart in here because the read code needs to know
if we allocated a file structure so that it can copy around the
read-ahead parameters.  In the long run we should probably aim to
cache full file structures used with special stateids instead.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch changes nfs4_preprocess_stateid_op so it always returns
a valid struct file if it has been asked for that.  For that we
now allocate a temporary struct file for special stateids, and check
permissions if we got the file structure from the stateid.  This
ensures that all callers will get their handling of special stateids
right, and avoids code duplication.

There is a little wart in here because the read code needs to know
if we allocated a file structure so that it can copy around the
read-ahead parameters.  In the long run we should probably aim to
cache full file structures used with special stateids instead.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: refactor nfs4_preprocess_stateid_op</title>
<updated>2015-06-19T19:39:52+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2015-06-18T14:44:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a0649b2d3fffb1cde8745568c767f3a55a3462bc'/>
<id>a0649b2d3fffb1cde8745568c767f3a55a3462bc</id>
<content type='text'>
Split out two self contained helpers to make the function more readable.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Split out two self contained helpers to make the function more readable.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: clean up raparams handling</title>
<updated>2015-06-19T19:39:51+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2015-06-18T14:44:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e749a4621e414c36a54ac8b3205955e267f00db3'/>
<id>e749a4621e414c36a54ac8b3205955e267f00db3</id>
<content type='text'>
Refactor the raparam hash helpers to just deal with the raparms,
and keep opening/closing files separate from that.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor the raparam hash helpers to just deal with the raparms,
and keep opening/closing files separate from that.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: use swap() in sort_pacl_range()</title>
<updated>2015-06-19T19:39:50+00:00</updated>
<author>
<name>Fabian Frederick</name>
<email>fabf@skynet.be</email>
</author>
<published>2015-06-12T16:58:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=97b1f9aae963cc0b229ef8147db4782170564d4f'/>
<id>97b1f9aae963cc0b229ef8147db4782170564d4f</id>
<content type='text'>
Use kernel.h macro definition.

Thanks to Julia Lawall for Coccinelle scripting support.

Signed-off-by: Fabian Frederick &lt;fabf@skynet.be&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use kernel.h macro definition.

Thanks to Julia Lawall for Coccinelle scripting support.

Signed-off-by: Fabian Frederick &lt;fabf@skynet.be&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfsd: Update callback sequnce id only CB_SEQUENCE success</title>
<updated>2015-06-04T20:51:30+00:00</updated>
<author>
<name>Kinglong Mee</name>
<email>kinglongmee@gmail.com</email>
</author>
<published>2015-06-02T10:59:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=276f03e3ba242ebf2cf201cc3c7058d2884912b7'/>
<id>276f03e3ba242ebf2cf201cc3c7058d2884912b7</id>
<content type='text'>
When testing pnfs layout, nfsd got error NFS4ERR_SEQ_MISORDERED.
It is caused by nfs return NFS4ERR_DELAY before validate_seqid(),
don't update the sequnce id, but nfsd updates the sequnce id !!!

According to RFC5661 20.9.3,
" If CB_SEQUENCE returns an error, then the state of the slot
(sequence ID, cached reply) MUST NOT change. "

Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When testing pnfs layout, nfsd got error NFS4ERR_SEQ_MISORDERED.
It is caused by nfs return NFS4ERR_DELAY before validate_seqid(),
don't update the sequnce id, but nfsd updates the sequnce id !!!

According to RFC5661 20.9.3,
" If CB_SEQUENCE returns an error, then the state of the slot
(sequence ID, cached reply) MUST NOT change. "

Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
