<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/fs/nfs, branch v4.2.1</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>Merge tag 'nfs-for-4.2-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs</title>
<updated>2015-07-28T16:37:44+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-07-28T16:37:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d8132e08d25a47e2d5156aa2268cd1cd9b0d6c0d'/>
<id>d8132e08d25a47e2d5156aa2268cd1cd9b0d6c0d</id>
<content type='text'>
Pull NFS client bugfixes from Trond Myklebust:
 "Highlights include:

  Stable patches:
   - Fix a situation where the client uses the wrong (zero) stateid.
   - Fix a memory leak in nfs_do_recoalesce

  Bugfixes:
   - Plug a memory leak when -&gt;prepare_layoutcommit fails
   - Fix an Oops in the NFSv4 open code
   - Fix a backchannel deadlock
   - Fix a livelock in sunrpc when sendmsg fails due to low memory
     availability
   - Don't revalidate the mapping if both size and change attr are up to
     date
   - Ensure we don't miss a file extension when doing pNFS
   - Several fixes to handle NFSv4.1 sequence operation status bits
     correctly
   - Several pNFS layout return bugfixes"

* tag 'nfs-for-4.2-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (28 commits)
  nfs: Fix an oops caused by using other thread's stack space in ASYNC mode
  nfs: plug memory leak when -&gt;prepare_layoutcommit fails
  SUNRPC: Report TCP errors to the caller
  sunrpc: translate -EAGAIN to -ENOBUFS when socket is writable.
  NFSv4.2: handle NFS-specific llseek errors
  NFS: Don't clear desc-&gt;pg_moreio in nfs_do_recoalesce()
  NFS: Fix a memory leak in nfs_do_recoalesce
  NFS: nfs_mark_for_revalidate should always set NFS_INO_REVAL_PAGECACHE
  NFS: Remove the "NFS_CAP_CHANGE_ATTR" capability
  NFS: Set NFS_INO_REVAL_PAGECACHE if the change attribute is uninitialised
  NFS: Don't revalidate the mapping if both size and change attr are up to date
  NFSv4/pnfs: Ensure we don't miss a file extension
  NFSv4: We must set NFS_OPEN_STATE flag in nfs_resync_open_stateid_locked
  SUNRPC: xprt_complete_bc_request must also decrement the free slot count
  SUNRPC: Fix a backchannel deadlock
  pNFS: Don't throw out valid layout segments
  pNFS: pnfs_roc_drain() fix a race with open
  pNFS: Fix races between return-on-close and layoutreturn.
  pNFS: pnfs_roc_drain should return 'true' when sleeping
  pNFS: Layoutreturn must invalidate all existing layout segments.
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull NFS client bugfixes from Trond Myklebust:
 "Highlights include:

  Stable patches:
   - Fix a situation where the client uses the wrong (zero) stateid.
   - Fix a memory leak in nfs_do_recoalesce

  Bugfixes:
   - Plug a memory leak when -&gt;prepare_layoutcommit fails
   - Fix an Oops in the NFSv4 open code
   - Fix a backchannel deadlock
   - Fix a livelock in sunrpc when sendmsg fails due to low memory
     availability
   - Don't revalidate the mapping if both size and change attr are up to
     date
   - Ensure we don't miss a file extension when doing pNFS
   - Several fixes to handle NFSv4.1 sequence operation status bits
     correctly
   - Several pNFS layout return bugfixes"

* tag 'nfs-for-4.2-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (28 commits)
  nfs: Fix an oops caused by using other thread's stack space in ASYNC mode
  nfs: plug memory leak when -&gt;prepare_layoutcommit fails
  SUNRPC: Report TCP errors to the caller
  sunrpc: translate -EAGAIN to -ENOBUFS when socket is writable.
  NFSv4.2: handle NFS-specific llseek errors
  NFS: Don't clear desc-&gt;pg_moreio in nfs_do_recoalesce()
  NFS: Fix a memory leak in nfs_do_recoalesce
  NFS: nfs_mark_for_revalidate should always set NFS_INO_REVAL_PAGECACHE
  NFS: Remove the "NFS_CAP_CHANGE_ATTR" capability
  NFS: Set NFS_INO_REVAL_PAGECACHE if the change attribute is uninitialised
  NFS: Don't revalidate the mapping if both size and change attr are up to date
  NFSv4/pnfs: Ensure we don't miss a file extension
  NFSv4: We must set NFS_OPEN_STATE flag in nfs_resync_open_stateid_locked
  SUNRPC: xprt_complete_bc_request must also decrement the free slot count
  SUNRPC: Fix a backchannel deadlock
  pNFS: Don't throw out valid layout segments
  pNFS: pnfs_roc_drain() fix a race with open
  pNFS: Fix races between return-on-close and layoutreturn.
  pNFS: pnfs_roc_drain should return 'true' when sleeping
  pNFS: Layoutreturn must invalidate all existing layout segments.
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: Fix an oops caused by using other thread's stack space in ASYNC mode</title>
<updated>2015-07-28T13:07:03+00:00</updated>
<author>
<name>Kinglong Mee</name>
<email>kinglongmee@gmail.com</email>
</author>
<published>2015-07-27T07:31:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a49c269111a5b3c1fd2a98f36fa27423b94549f8'/>
<id>a49c269111a5b3c1fd2a98f36fa27423b94549f8</id>
<content type='text'>
An oops caused by using other thread's stack space in sunrpc ASYNC sending thread.

[ 9839.007187] ------------[ cut here ]------------
[ 9839.007923] kernel BUG at fs/nfs/nfs4xdr.c:910!
[ 9839.008069] invalid opcode: 0000 [#1] SMP
[ 9839.008069] Modules linked in: blocklayoutdriver rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm joydev iosf_mbi crct10dif_pclmul snd_timer crc32_pclmul crc32c_intel ghash_clmulni_intel snd soundcore ppdev pvpanic parport_pc i2c_piix4 serio_raw virtio_balloon parport acpi_cpufreq nfsd nfs_acl lockd grace auth_rpcgss sunrpc qxl drm_kms_helper virtio_net virtio_console virtio_blk ttm drm virtio_pci virtio_ring virtio ata_generic pata_acpi
[ 9839.008069] CPU: 0 PID: 308 Comm: kworker/0:1H Not tainted 4.0.0-0.rc4.git1.3.fc23.x86_64 #1
[ 9839.008069] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 9839.008069] Workqueue: rpciod rpc_async_schedule [sunrpc]
[ 9839.008069] task: ffff8800d8b4d8e0 ti: ffff880036678000 task.ti: ffff880036678000
[ 9839.008069] RIP: 0010:[&lt;ffffffffa0339cc9&gt;]  [&lt;ffffffffa0339cc9&gt;] reserve_space.part.73+0x9/0x10 [nfsv4]
[ 9839.008069] RSP: 0018:ffff88003667ba58  EFLAGS: 00010246
[ 9839.008069] RAX: 0000000000000000 RBX: 000000001fc15e18 RCX: ffff8800c0193800
[ 9839.008069] RDX: ffff8800e4ae3f24 RSI: 000000001fc15e2c RDI: ffff88003667bcd0
[ 9839.008069] RBP: ffff88003667ba58 R08: ffff8800d9173008 R09: 0000000000000003
[ 9839.008069] R10: ffff88003667bcd0 R11: 000000000000000c R12: 0000000000010000
[ 9839.008069] R13: ffff8800d9173350 R14: 0000000000000000 R15: ffff8800c0067b98
[ 9839.008069] FS:  0000000000000000(0000) GS:ffff88011fc00000(0000) knlGS:0000000000000000
[ 9839.008069] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 9839.008069] CR2: 00007f988c9c8bb0 CR3: 00000000d99b6000 CR4: 00000000000407f0
[ 9839.008069] Stack:
[ 9839.008069]  ffff88003667bbc8 ffffffffa03412c5 00000000c6c55680 ffff880000000003
[ 9839.008069]  0000000000000088 00000010c6c55680 0001000000000002 ffffffff816e87e9
[ 9839.008069]  0000000000000000 00000000477290e2 ffff88003667bab8 ffffffff81327ba3
[ 9839.008069] Call Trace:
[ 9839.008069]  [&lt;ffffffffa03412c5&gt;] encode_attrs+0x435/0x530 [nfsv4]
[ 9839.008069]  [&lt;ffffffff816e87e9&gt;] ? inet_sendmsg+0x69/0xb0
[ 9839.008069]  [&lt;ffffffff81327ba3&gt;] ? selinux_socket_sendmsg+0x23/0x30
[ 9839.008069]  [&lt;ffffffff8164c1df&gt;] ? do_sock_sendmsg+0x9f/0xc0
[ 9839.008069]  [&lt;ffffffff8164c278&gt;] ? kernel_sendmsg+0x58/0x70
[ 9839.008069]  [&lt;ffffffffa011acc0&gt;] ? xdr_reserve_space+0x20/0x170 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa011acc0&gt;] ? xdr_reserve_space+0x20/0x170 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa0341b40&gt;] ? nfs4_xdr_enc_open_noattr+0x130/0x130 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa03419a5&gt;] encode_open+0x2d5/0x340 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa0341b40&gt;] ? nfs4_xdr_enc_open_noattr+0x130/0x130 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa011ab89&gt;] ? xdr_encode_opaque+0x19/0x20 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa0339cfb&gt;] ? encode_string+0x2b/0x40 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa0341bf3&gt;] nfs4_xdr_enc_open+0xb3/0x140 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa0110a4c&gt;] rpcauth_wrap_req+0xac/0xf0 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa01017db&gt;] call_transmit+0x18b/0x2d0 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa0101650&gt;] ? call_decode+0x860/0x860 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa0101650&gt;] ? call_decode+0x860/0x860 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa010caa0&gt;] __rpc_execute+0x90/0x460 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa010ce85&gt;] rpc_async_schedule+0x15/0x20 [sunrpc]
[ 9839.008069]  [&lt;ffffffff810b452b&gt;] process_one_work+0x1bb/0x410
[ 9839.008069]  [&lt;ffffffff810b47d3&gt;] worker_thread+0x53/0x470
[ 9839.008069]  [&lt;ffffffff810b4780&gt;] ? process_one_work+0x410/0x410
[ 9839.008069]  [&lt;ffffffff810b4780&gt;] ? process_one_work+0x410/0x410
[ 9839.008069]  [&lt;ffffffff810ba7b8&gt;] kthread+0xd8/0xf0
[ 9839.008069]  [&lt;ffffffff810ba6e0&gt;] ? kthread_worker_fn+0x180/0x180
[ 9839.008069]  [&lt;ffffffff81786418&gt;] ret_from_fork+0x58/0x90
[ 9839.008069]  [&lt;ffffffff810ba6e0&gt;] ? kthread_worker_fn+0x180/0x180
[ 9839.008069] Code: 00 00 48 c7 c7 21 fa 37 a0 e8 94 1c d6 e0 c6 05 d2 17 05 00 01 8b 03 eb d7 66 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 89 e5 &lt;0f&gt; 0b 0f 1f 44 00 00 66 66 66 66 90 55 48 89 e5 41 54 53 89 f3
[ 9839.008069] RIP  [&lt;ffffffffa0339cc9&gt;] reserve_space.part.73+0x9/0x10 [nfsv4]
[ 9839.008069]  RSP &lt;ffff88003667ba58&gt;
[ 9839.071114] ---[ end trace cc14c03adb522e94 ]---

Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.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>
An oops caused by using other thread's stack space in sunrpc ASYNC sending thread.

[ 9839.007187] ------------[ cut here ]------------
[ 9839.007923] kernel BUG at fs/nfs/nfs4xdr.c:910!
[ 9839.008069] invalid opcode: 0000 [#1] SMP
[ 9839.008069] Modules linked in: blocklayoutdriver rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm joydev iosf_mbi crct10dif_pclmul snd_timer crc32_pclmul crc32c_intel ghash_clmulni_intel snd soundcore ppdev pvpanic parport_pc i2c_piix4 serio_raw virtio_balloon parport acpi_cpufreq nfsd nfs_acl lockd grace auth_rpcgss sunrpc qxl drm_kms_helper virtio_net virtio_console virtio_blk ttm drm virtio_pci virtio_ring virtio ata_generic pata_acpi
[ 9839.008069] CPU: 0 PID: 308 Comm: kworker/0:1H Not tainted 4.0.0-0.rc4.git1.3.fc23.x86_64 #1
[ 9839.008069] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 9839.008069] Workqueue: rpciod rpc_async_schedule [sunrpc]
[ 9839.008069] task: ffff8800d8b4d8e0 ti: ffff880036678000 task.ti: ffff880036678000
[ 9839.008069] RIP: 0010:[&lt;ffffffffa0339cc9&gt;]  [&lt;ffffffffa0339cc9&gt;] reserve_space.part.73+0x9/0x10 [nfsv4]
[ 9839.008069] RSP: 0018:ffff88003667ba58  EFLAGS: 00010246
[ 9839.008069] RAX: 0000000000000000 RBX: 000000001fc15e18 RCX: ffff8800c0193800
[ 9839.008069] RDX: ffff8800e4ae3f24 RSI: 000000001fc15e2c RDI: ffff88003667bcd0
[ 9839.008069] RBP: ffff88003667ba58 R08: ffff8800d9173008 R09: 0000000000000003
[ 9839.008069] R10: ffff88003667bcd0 R11: 000000000000000c R12: 0000000000010000
[ 9839.008069] R13: ffff8800d9173350 R14: 0000000000000000 R15: ffff8800c0067b98
[ 9839.008069] FS:  0000000000000000(0000) GS:ffff88011fc00000(0000) knlGS:0000000000000000
[ 9839.008069] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 9839.008069] CR2: 00007f988c9c8bb0 CR3: 00000000d99b6000 CR4: 00000000000407f0
[ 9839.008069] Stack:
[ 9839.008069]  ffff88003667bbc8 ffffffffa03412c5 00000000c6c55680 ffff880000000003
[ 9839.008069]  0000000000000088 00000010c6c55680 0001000000000002 ffffffff816e87e9
[ 9839.008069]  0000000000000000 00000000477290e2 ffff88003667bab8 ffffffff81327ba3
[ 9839.008069] Call Trace:
[ 9839.008069]  [&lt;ffffffffa03412c5&gt;] encode_attrs+0x435/0x530 [nfsv4]
[ 9839.008069]  [&lt;ffffffff816e87e9&gt;] ? inet_sendmsg+0x69/0xb0
[ 9839.008069]  [&lt;ffffffff81327ba3&gt;] ? selinux_socket_sendmsg+0x23/0x30
[ 9839.008069]  [&lt;ffffffff8164c1df&gt;] ? do_sock_sendmsg+0x9f/0xc0
[ 9839.008069]  [&lt;ffffffff8164c278&gt;] ? kernel_sendmsg+0x58/0x70
[ 9839.008069]  [&lt;ffffffffa011acc0&gt;] ? xdr_reserve_space+0x20/0x170 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa011acc0&gt;] ? xdr_reserve_space+0x20/0x170 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa0341b40&gt;] ? nfs4_xdr_enc_open_noattr+0x130/0x130 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa03419a5&gt;] encode_open+0x2d5/0x340 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa0341b40&gt;] ? nfs4_xdr_enc_open_noattr+0x130/0x130 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa011ab89&gt;] ? xdr_encode_opaque+0x19/0x20 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa0339cfb&gt;] ? encode_string+0x2b/0x40 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa0341bf3&gt;] nfs4_xdr_enc_open+0xb3/0x140 [nfsv4]
[ 9839.008069]  [&lt;ffffffffa0110a4c&gt;] rpcauth_wrap_req+0xac/0xf0 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa01017db&gt;] call_transmit+0x18b/0x2d0 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa0101650&gt;] ? call_decode+0x860/0x860 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa0101650&gt;] ? call_decode+0x860/0x860 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa010caa0&gt;] __rpc_execute+0x90/0x460 [sunrpc]
[ 9839.008069]  [&lt;ffffffffa010ce85&gt;] rpc_async_schedule+0x15/0x20 [sunrpc]
[ 9839.008069]  [&lt;ffffffff810b452b&gt;] process_one_work+0x1bb/0x410
[ 9839.008069]  [&lt;ffffffff810b47d3&gt;] worker_thread+0x53/0x470
[ 9839.008069]  [&lt;ffffffff810b4780&gt;] ? process_one_work+0x410/0x410
[ 9839.008069]  [&lt;ffffffff810b4780&gt;] ? process_one_work+0x410/0x410
[ 9839.008069]  [&lt;ffffffff810ba7b8&gt;] kthread+0xd8/0xf0
[ 9839.008069]  [&lt;ffffffff810ba6e0&gt;] ? kthread_worker_fn+0x180/0x180
[ 9839.008069]  [&lt;ffffffff81786418&gt;] ret_from_fork+0x58/0x90
[ 9839.008069]  [&lt;ffffffff810ba6e0&gt;] ? kthread_worker_fn+0x180/0x180
[ 9839.008069] Code: 00 00 48 c7 c7 21 fa 37 a0 e8 94 1c d6 e0 c6 05 d2 17 05 00 01 8b 03 eb d7 66 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 89 e5 &lt;0f&gt; 0b 0f 1f 44 00 00 66 66 66 66 90 55 48 89 e5 41 54 53 89 f3
[ 9839.008069] RIP  [&lt;ffffffffa0339cc9&gt;] reserve_space.part.73+0x9/0x10 [nfsv4]
[ 9839.008069]  RSP &lt;ffff88003667ba58&gt;
[ 9839.071114] ---[ end trace cc14c03adb522e94 ]---

Signed-off-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: plug memory leak when -&gt;prepare_layoutcommit fails</title>
<updated>2015-07-28T13:07:02+00:00</updated>
<author>
<name>Jeff Layton</name>
<email>jlayton@poochiereds.net</email>
</author>
<published>2015-07-10T19:58:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3471648a7569512e10f154cdfe5076c341a5c099'/>
<id>3471648a7569512e10f154cdfe5076c341a5c099</id>
<content type='text'>
"data" is currently leaked when the prepare_layoutcommit operation
returns an error. Put the cred before taking the spinlock in that
case, take the lock and then goto out_unlock which will drop the
lock and then free "data".

Signed-off-by: Jeff Layton &lt;jeff.layton@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>
"data" is currently leaked when the prepare_layoutcommit operation
returns an error. Put the cred before taking the spinlock in that
case, take the lock and then goto out_unlock which will drop the
lock and then free "data".

Signed-off-by: Jeff Layton &lt;jeff.layton@primarydata.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv4.2: handle NFS-specific llseek errors</title>
<updated>2015-07-27T15:16:25+00:00</updated>
<author>
<name>J. Bruce Fields</name>
<email>bfields@redhat.com</email>
</author>
<published>2015-07-23T15:08:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bdcc2cd14e4e86f1fb19c78e191a1b8da3d6dea0'/>
<id>bdcc2cd14e4e86f1fb19c78e191a1b8da3d6dea0</id>
<content type='text'>
Handle NFS-specific llseek errors instead of letting them leak out to
userspace.

Reported-by: Benjamin Coddington &lt;bcodding@redhat.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@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>
Handle NFS-specific llseek errors instead of letting them leak out to
userspace.

Reported-by: Benjamin Coddington &lt;bcodding@redhat.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Don't clear desc-&gt;pg_moreio in nfs_do_recoalesce()</title>
<updated>2015-07-27T14:33:12+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-07-24T16:31:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d4c30454db732d5a377abfc309c7a629f3bbaeb0'/>
<id>d4c30454db732d5a377abfc309c7a629f3bbaeb0</id>
<content type='text'>
Recoalescing does not affect whether or not we've already sent off
I/O, and doing so means that we end up sending a bunch of synchronous
for cases where we actually need to be using unstable writes.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recoalescing does not affect whether or not we've already sent off
I/O, and doing so means that we end up sending a bunch of synchronous
for cases where we actually need to be using unstable writes.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Fix a memory leak in nfs_do_recoalesce</title>
<updated>2015-07-27T14:33:08+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-07-27T14:23:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=03d5eb65b53889fe98a5ecddfe205c16e3093190'/>
<id>03d5eb65b53889fe98a5ecddfe205c16e3093190</id>
<content type='text'>
If the function exits early, then we must put those requests that were
not processed back onto the &amp;mirror-&gt;pg_list so they can be cleaned up
by nfs_pgio_error().

Fixes: a7d42ddb30997 ("nfs: add mirroring support to pgio layer")
Cc: stable@vger.kernel.org # v4.0+
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 the function exits early, then we must put those requests that were
not processed back onto the &amp;mirror-&gt;pg_list so they can be cleaned up
by nfs_pgio_error().

Fixes: a7d42ddb30997 ("nfs: add mirroring support to pgio layer")
Cc: stable@vger.kernel.org # v4.0+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Remove the "NFS_CAP_CHANGE_ATTR" capability</title>
<updated>2015-07-22T21:15:54+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-07-05T15:12:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cd812599796f500b042f5464b6665755eca21137'/>
<id>cd812599796f500b042f5464b6665755eca21137</id>
<content type='text'>
Setting the change attribute has been mandatory for all NFS versions, since
commit 3a1556e8662c ("NFSv2/v3: Simulate the change attribute"). We should
therefore not have anything be conditional on it being set/unset.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Setting the change attribute has been mandatory for all NFS versions, since
commit 3a1556e8662c ("NFSv2/v3: Simulate the change attribute"). We should
therefore not have anything be conditional on it being set/unset.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Set NFS_INO_REVAL_PAGECACHE if the change attribute is uninitialised</title>
<updated>2015-07-22T21:15:53+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-07-05T20:07:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5c675d6420511e035c150e420ab26d0306bbb736'/>
<id>5c675d6420511e035c150e420ab26d0306bbb736</id>
<content type='text'>
We can't allow caching of data until the change attribute has been
initialised correctly.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can't allow caching of data until the change attribute has been
initialised correctly.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFS: Don't revalidate the mapping if both size and change attr are up to date</title>
<updated>2015-07-22T21:15:53+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-07-05T15:02:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=85a23cee3f2c928475f31777ead5a71340a12fc3'/>
<id>85a23cee3f2c928475f31777ead5a71340a12fc3</id>
<content type='text'>
If we've ensured that the size and the change attribute are both correct,
then there is no point in marking those attributes as needing revalidation
again. Only do so if we know the size is incorrect and was not updated.

Fixes: f2467b6f64da ("NFS: Clear NFS_INO_REVAL_PAGECACHE when...")
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've ensured that the size and the change attribute are both correct,
then there is no point in marking those attributes as needing revalidation
again. Only do so if we know the size is incorrect and was not updated.

Fixes: f2467b6f64da ("NFS: Clear NFS_INO_REVAL_PAGECACHE when...")
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NFSv4/pnfs: Ensure we don't miss a file extension</title>
<updated>2015-07-22T21:15:53+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-07-06T00:06:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2b83d3de4c18af49800e0b26ae013db4fcf43a4a'/>
<id>2b83d3de4c18af49800e0b26ae013db4fcf43a4a</id>
<content type='text'>
pNFS writes don't return attributes, however that doesn't mean that we
should ignore the fact that they may be extending the file. This patch
ensures that if a write is seen to extend the file, then we always set
an attribute barrier, and update the cached file size.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pNFS writes don't return attributes, however that doesn't mean that we
should ignore the fact that they may be extending the file. This patch
ensures that if a write is seen to extend the file, then we always set
an attribute barrier, and update the cached file size.

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