NFS client patches for Linux 2.6.27

The following set of patches fix known issues with the 2.6.27 NFS client code, and significantly enhance the support for NFSv4.

linux-2.6.27-000-rpc_rdma_refactor_the_inline_memory_registration_code.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 14:59:49 -0400

RPC/RDMA: refactor the inline memory registration code.

Refactor the memory registration and deregistration routines. This saves stack space, makes the code more readable and prepares to add the new FRMR registration methods.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-001-rpc_rdma_add_data_types_and_new_frmr_memory_registration_enum.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 14:59:59 -0400

RPC/RDMA: add data types and new FRMR memory registration enum.

Internal RPC/RDMA structure updates in preparation for FRMR support.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Acked-by: Tom Tucker <tom@opengridcomputing.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-002-rpc_rdma_check_selected_memory_registration_mode_at_runtime.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:00:09 -0400

RPC/RDMA: check selected memory registration mode at runtime.

At transport creation, check for, and use, any local dma lkey. Then, check that the selected memory registration mode is in fact supported by the RDMA adapter selected for the mount. Fall back to best alternative if not.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Acked-by: Tom Tucker <tom@opengridcomputing.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-003-rpc_rdma_support_frmr_client_memory_registration.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:00:20 -0400

RPC/RDMA: support FRMR client memory registration.

Configure, detect and use "fastreg" support from IB/iWARP verbs layer to perform RPC/RDMA memory registration.

Make FRMR the default memreg mode (will fall back if not supported by the selected RDMA adapter).

This allows full and optimal operation over the cxgb3 adapter, and others.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Acked-by: Tom Tucker <tom@opengridcomputing.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-004-rpc_rdma_fix_connection_ird_ord_setting.dif:

From: Tom Tucker <tom@opengridcomputing.com>

Date: Thu, 09 Oct 2008 15:00:30 -0400

RPC/RDMA: fix connection IRD/ORD setting

This logic sets the connection parameter that configures the local device and informs the remote peer how many concurrent incoming RDMA_READ requests are supported. The original logic didn't really do what was intended for two reasons:

- The max number supported by the device is typically smaller than any one factor in the calculation used, and

- The field in the connection parameter structure where the value is stored is a u8 and always overflows for the default settings.

So what really happens is the value requested for responder resources is the left over 8 bits from the "desired value". If the desired value happened to be a multiple of 256, the result was zero and it wouldn't connect at all.

Given the above and the fact that max_requests is almost always larger than the max responder resources supported by the adapter, this patch simplifies this logic and simply requests the max supported by the device, subject to a reasonable limit.

This bug was found by Jim Schutt at Sandia.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>

Acked-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-005-rpc_rdma_suppress_retransmit_on_rpc_rdma_clients.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:00:40 -0400

RPC/RDMA: suppress retransmit on RPC/RDMA clients.

An RPC/RDMA client cannot retransmit on an unbroken connection, doing so violates its flow control with the server.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-006-rpc_rdma_maintain_the_rpc_task_bytes_sent_statistic.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:00:50 -0400

RPC/RDMA: maintain the RPC task bytes-sent statistic.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-007-rpc_rdma_avoid_an_oops_due_to_disconnect_racing_with_async_upcalls.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:01:00 -0400

RPC/RDMA: avoid an oops due to disconnect racing with async upcalls.

RDMA disconnects yield an upcall from the RDMA connection manager, which can race with rpc transport close, e.g. on ^C of a mount. Ensure any rdma cm_id and qp are fully destroyed before continuing.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-008-rpc_rdma_adhere_to_protocol_for_unpadded_client_trailing_write_chunks.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:01:11 -0400

RPC/RDMA: adhere to protocol for unpadded client trailing write chunks.

The RPC/RDMA protocol allows clients and servers to avoid RDMA operations for data which is purely the result of XDR padding. On the client, automatically insert the necessary padding for such server replies, and optionally don't marshal such chunks.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-009-rpc_rdma_return_a_consistent_error_when_connect_fails.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:01:21 -0400

RPC/RDMA: return a consistent error, when connect fails.

The xprt_connect call path does not expect such errors as ECONNREFUSED to be returned from failed transport connection attempts, otherwise it translates them to EIO and signals fatal errors. For example, mount.nfs prints simply "internal error". Translate all such errors to ENOTCONN from RPC/RDMA to match sockets behavior.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-010-rpc_rdma_fix_connect_reconnect_resource_leak.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:01:31 -0400

RPC/RDMA: fix connect/reconnect resource leak.

The RPC/RDMA code can leak RDMA connection manager endpoints in certain error cases on connect. Don't signal unwanted events, and be certain to destroy any allocated qp.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-011-rpc_rdma_harden_connection_logic_against_missing_late_rdma_cm_upcalls.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:01:41 -0400

RPC/RDMA: harden connection logic against missing/late rdma_cm upcalls.

Add defensive timeouts to wait_for_completion() calls in RDMA address resolution, and make them interruptible. Fix the timeout units to milliseconds (formerly jiffies) and move to private header.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-012-rpc_rdma_reformat_a_debug_printk_to_keep_lines_together.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:01:52 -0400

RPC/RDMA: reformat a debug printk to keep lines together.

The send marshaling code split a particular dprintk across two lines, which makes it hard to extract from logfiles.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-013-rpc_rdma_optionally_emit_useful_transport_info_upon_connect_disconnect.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Thu, 09 Oct 2008 15:02:02 -0400

RPC/RDMA: optionally emit useful transport info upon connect/disconnect.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-014-rpc_rdma_correct_the_reconnect_timer_backoff.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Fri, 10 Oct 2008 11:32:34 -0400

RPC/RDMA: correct the reconnect timer backoff

The RPC/RDMA code had a constant 5-second reconnect backoff, and always performed it, even when re-establishing a connection to a server after the RPC layer closed it due to being idle. Make it an geometric backoff (up to 30 seconds), and don't delay idle reconnect.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

linux-2.6.27-015-rpc_rdma_ensure_connection_attempt_is_complete_before_signalling.dif:

From: Tom Talpey <talpey@netapp.com>

Date: Fri, 10 Oct 2008 11:32:45 -0400

RPC/RDMA: ensure connection attempt is complete before signalling.

The RPC/RDMA connection logic could return early from reconnection attempts, leading to additional spurious retries.

Signed-off-by: Tom Talpey <talpey@netapp.com>

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]linux-2.6.27-000-rpc..>2008-10-10 19:16 14K 
[TXT]linux-2.6.27-001-rpc..>2008-10-10 19:16 2.0K 
[TXT]linux-2.6.27-002-rpc..>2008-10-10 19:16 4.7K 
[TXT]linux-2.6.27-003-rpc..>2008-10-10 19:16 9.7K 
[TXT]linux-2.6.27-004-rpc..>2008-10-10 19:16 4.3K 
[TXT]linux-2.6.27-005-rpc..>2008-10-10 19:16 2.8K 
[TXT]linux-2.6.27-006-rpc..>2008-10-10 19:16 760  
[TXT]linux-2.6.27-007-rpc..>2008-10-10 19:16 2.1K 
[TXT]linux-2.6.27-008-rpc..>2008-10-10 19:16 4.2K 
[TXT]linux-2.6.27-009-rpc..>2008-10-10 19:16 1.1K 
[TXT]linux-2.6.27-010-rpc..>2008-10-10 19:16 1.6K 
[TXT]linux-2.6.27-011-rpc..>2008-10-10 19:16 3.0K 
[TXT]linux-2.6.27-012-rpc..>2008-10-10 19:16 1.0K 
[TXT]linux-2.6.27-013-rpc..>2008-10-10 19:16 1.8K 
[TXT]linux-2.6.27-014-rpc..>2008-10-10 19:16 1.6K 
[TXT]linux-2.6.27-015-rpc..>2008-10-10 19:16 1.2K 
[   ]series 2008-10-10 19:16 1.3K 

Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.11 Perl/v5.16.3 Server at linux-nfs.org Port 80