/* This is the callback from RPC telling us whether a reply was received or some error occurred (timeout or socket shutdown).  */
int nfs_readpage_result(struct rpc_task *task, struct nfs_read_data *data)
/* This is the callback from RPC telling us whether a reply was received or some error occurred (timeout or socket shutdown).  */
int nfs_readpage_result(struct rpc_task *task, struct nfs_read_data *data)
{
	int status;
	dprintk("NFS: %s: %5u, (status %d)\n", __func__, task->tk_pid,
			task->tk_status);
	status = NFS_PROTO(data->inode)->read_done(task, data);
	if (status != 0)
		return status;
	nfs_add_stats(data->inode, NFSIOS_SERVERREADBYTES, data->res.count);
	if (task->tk_status == -ESTALE) {
		set_bit(NFS_INO_STALE, &NFS_I(data->inode)->flags);
		nfs_mark_for_revalidate(data->inode);
	}
	return 0;
}