android_kernel_samsung_msm8976/fs/nfs
Boaz Harrosh c999ff6802 pnfs-obj: Fix __r4w_get_page when offset is beyond i_size
It is very common for the end of the file to be unaligned on
stripe size. But since we know it's beyond file's end then
the XOR should be preformed with all zeros.

Old code used to just read zeros out of the OSD devices, which is a great
waist. But what scares me more about this situation is that, we now have
pages attached to the file's mapping that are beyond i_size. I don't
like the kind of bugs this calls for.

Fix both birds, by returning a global zero_page, if offset is beyond
i_size.

TODO:
	Change the API to ->__r4w_get_page() so a NULL can be
	returned without being considered as error, since XOR API
	treats NULL entries as zero_pages.

[Bug since 3.2. Should apply the same way to all Kernels since]
CC: Stable Tree <stable@kernel.org>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
2012-07-20 11:50:31 +03:00
..
blocklayout NFS: Use proper naming conventions for the nfs_client.net field 2012-05-22 16:45:44 -04:00
objlayout pnfs-obj: Fix __r4w_get_page when offset is beyond i_size 2012-07-20 11:50:31 +03:00
cache_lib.c NFS: remove RPC PipeFS mount point references from NFS cache routines 2012-01-31 18:20:26 -05:00
cache_lib.h NFS: DNS resolver PipeFS notifier introduced 2012-01-31 18:20:26 -05:00
callback.c NFS: hard-code init_net for NFS callback transports 2012-06-14 13:53:43 -04:00
callback.h NFSv4.1: Convert slotid from u8 to u32 2012-02-15 00:19:43 -05:00
callback_proc.c NFSv4: Further clean-ups of delegation stateid validation 2012-03-06 10:32:44 -05:00
callback_xdr.c NFS: add an endian notation for sparse 2012-06-12 09:54:40 -04:00
client.c NFSv4.1: Fix umount when filelayout DS is also the MDS 2012-06-18 08:45:16 -04:00
delegation.c NFSv4: nfs_client_return_marked_delegations can't flush data 2012-05-08 12:53:21 -04:00
delegation.h NFS: nfs_inode_return_delegation() should always flush dirty data 2012-05-08 12:53:21 -04:00
dir.c nfs: don't open in ->d_revalidate 2012-06-01 12:12:02 -04:00
direct.c NFS: Fix a refcounting issue in O_DIRECT 2012-06-19 18:42:14 -04:00
dns_resolve.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
dns_resolve.h
file.c nfs: don't open in ->d_revalidate 2012-06-01 12:12:02 -04:00
fscache-index.c
fscache.c NFS: Don't pass mount data to nfs_fscache_get_super_cookie() 2012-05-14 17:30:26 -07:00
fscache.h NFS: Fix a compile issue when CONFIG_NFS_FSCACHE was undefined 2012-05-16 10:24:20 -07:00
getroot.c NFS: Create a single nfs_get_root() 2012-05-14 17:30:26 -07:00
idmap.c NFS: Force the legacy idmapper to be single threaded 2012-06-20 14:38:11 -04:00
inode.c NFS: Initialise commit_info.rpc_out when !defined(CONFIG_NFS_V4) 2012-06-19 18:42:28 -04:00
internal.h NFS: Ensure that setattr and getattr wait for O_DIRECT write completion 2012-05-31 11:41:36 -07:00
iostat.h
Kconfig NFS: Turn v3 on by default 2012-05-14 17:42:22 -07:00
Makefile NFS: Make v2 configurable 2012-05-14 17:42:22 -07:00
mount_clnt.c SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
namespace.c NFS: Remove extra rpc_clnt argument to proc_lookup 2012-04-27 14:10:39 -04:00
netns.h NFS: Always use the same SETCLIENTID boot verifier 2012-05-22 16:45:46 -04:00
nfs2xdr.c NFS: Create an NFS v3 stat_to_errno() 2012-05-14 17:42:21 -07:00
nfs3acl.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
nfs3proc.c NFS client updates for Linux 3.5 2012-05-29 10:43:51 -07:00
nfs3xdr.c NFS: Create an NFS v3 stat_to_errno() 2012-05-14 17:42:21 -07:00
nfs4_fs.h NFSv4: Fix an Oops in the open recovery code 2012-06-05 10:00:14 -04:00
nfs4filelayout.c NFSv4.1: Handle other occurrences of NFS4ERR_CONN_NOT_BOUND_TO_SESSION 2012-05-27 14:33:07 -04:00
nfs4filelayout.h NFSv4.1 resend LAYOUTGET on data server invalid layout errors 2012-05-19 17:55:33 -04:00
nfs4filelayoutdev.c NFSv4.1: Fix session initialisation races 2012-05-23 15:20:57 -04:00
nfs4namespace.c Merge branch 'bugfixes' into nfs-for-next 2012-05-21 10:12:39 -04:00
nfs4proc.c NFSv4 do not send an empty SETATTR compound 2012-06-11 17:25:53 -04:00
nfs4renewd.c NFS: Add NFSDBG_STATE 2012-05-22 16:45:42 -04:00
nfs4state.c NFSv4.1: Ensure we clear session state flags after a session creation 2012-06-05 10:22:14 -04:00
nfs4xdr.c NFSv4: Fix up decode_attr_mdsthreshold 2012-06-05 10:00:47 -04:00
nfsroot.c SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
pagelist.c NFS: Clean up - Rename nfs_unlock_request and nfs_unlock_request_dont_release 2012-05-09 15:17:43 -04:00
pnfs.c NFSv4.1: Fix a race in set_pnfs_layoutdriver 2012-06-19 13:32:45 -04:00
pnfs.h NFS4: Fix open bug when pnfs module blacklisted 2012-06-07 13:44:24 -04:00
pnfs_dev.c NFS: Fix more NFS debug related build warnings 2012-03-21 09:31:44 -04:00
proc.c NFSv2: EOF incorrectly set on short read 2012-06-11 17:25:00 -04:00
read.c NFSv4.1 add nfs_inode book keeping for mdsthreshold 2012-05-24 16:15:48 -04:00
super.c NFS: Use the NFS_DEFAULT_VERSION for v2 and v3 mounts 2012-06-09 14:38:59 -04:00
symlink.c
sysctl.c NFS: Fall back on old idmapper if request_key() fails 2012-02-06 18:48:01 -05:00
unlink.c NFS: Remove nfs4_setup_sequence from generic rename code 2012-03-21 09:31:46 -04:00
write.c NFS: Fix a commit bug 2012-06-05 18:38:47 -04:00