Re: [NFS] NFS Killable tasks request comments on patch

Previous thread: Results of a Robustness Regression tests campaign with RHEL5.1 Gold and linux-2.6.24-rc2-CITI_NFS4_ALL-1 by Le Rouzic on Thursday, December 6, 2007 - 3:45 am. (4 messages)

Next thread: [NFS] NFSv2/3 broken exporting/mounting (permission denied) in 2.6.24-rc4 by Erez Zadok on Thursday, December 6, 2007 - 7:20 pm. (7 messages)
From: Matthew Wilcox
Date: Thursday, December 6, 2007 - 4:00 pm

I've put up a git tree for this work; see
http://git.kernel.org/?p=linux/kernel/git/willy/misc.git;a=shortlog;h=task_killable

I've split up some of the earlier patches, hopefully in a way which will
make akpm less grumpy.  Andrew, let me know if I've misunderstood how
you want to see it.

Here's the commit for the NFS people to chew on a bit.

commit f05b88f294044cdf56fbe637a246ba6c7a14d6f1
Author: Matthew Wilcox <matthew@wil.cx>
Date:   Thu Dec 6 16:24:39 2007 -0500

    NFS: Switch from intr mount option to TASK_KILLABLE
    
    By using the TASK_KILLABLE infrastructure, we can get rid of the 'intr'
    mount option.  We have to use _killable everywhere instead of _interruptible
    as we get rid of rpc_clnt_sigmask/sigunmask.
    
    Signed-off-by: Liam R. Howlett <howlett@gmail.com>
    Signed-off-by: Matthew Wilcox <willy@linux.intel.com>

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 70587f3..310fa2f 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -302,7 +302,7 @@ found_client:
 	if (new)
 		nfs_free_client(new);
 
-	error = wait_event_interruptible(nfs_client_active_wq,
+	error = wait_event_killable(nfs_client_active_wq,
 				clp->cl_cons_state != NFS_CS_INITING);
 	if (error < 0) {
 		nfs_put_client(clp);
@@ -494,10 +494,6 @@ static int nfs_init_server_rpcclient(struct nfs_server *server, rpc_authflavor_t
 	if (server->flags & NFS_MOUNT_SOFT)
 		server->client->cl_softrtry = 1;
 
-	server->client->cl_intr = 0;
-	if (server->flags & NFS4_MOUNT_INTR)
-		server->client->cl_intr = 1;
-
 	return 0;
 }
 
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 5e8d82f..7b994b2 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -193,7 +193,7 @@ static ssize_t nfs_direct_wait(struct nfs_direct_req *dreq)
 	if (dreq->iocb)
 		goto out;
 
-	result = wait_for_completion_interruptible(&dreq->completion);
+	result = wait_for_completion_killable(&dreq->completion);
 
 	if (!result)
 		result = dreq->error;
@@ -391,9 +391,7 @@ static ssize_t ...
Previous thread: Results of a Robustness Regression tests campaign with RHEL5.1 Gold and linux-2.6.24-rc2-CITI_NFS4_ALL-1 by Le Rouzic on Thursday, December 6, 2007 - 3:45 am. (4 messages)

Next thread: [NFS] NFSv2/3 broken exporting/mounting (permission denied) in 2.6.24-rc4 by Erez Zadok on Thursday, December 6, 2007 - 7:20 pm. (7 messages)