diff options
author | Matthew Wilcox <matthew@wil.cx> | 2007-12-06 16:24:39 -0500 |
---|---|---|
committer | Matthew Wilcox <willy@linux.intel.com> | 2007-12-06 17:40:25 -0500 |
commit | 150030b78a454ba50d5e267b0dcf01b162809192 (patch) | |
tree | 4de766e7abbfd73a052f14f8efd3a26eb7b59d87 /include/linux | |
parent | 009e577e079656d51d0fe9b15e61e41b00816c29 (diff) |
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>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/nfs_fs.h | 9 | ||||
-rw-r--r-- | include/linux/nfs_mount.h | 2 | ||||
-rw-r--r-- | include/linux/sunrpc/clnt.h | 2 | ||||
-rw-r--r-- | include/linux/sunrpc/sched.h | 2 |
4 files changed, 2 insertions, 13 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 2d15d4aac094..2814bd40edf6 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -516,14 +516,7 @@ extern void * nfs_root_data(void); | |||
516 | 516 | ||
517 | #define nfs_wait_event(clnt, wq, condition) \ | 517 | #define nfs_wait_event(clnt, wq, condition) \ |
518 | ({ \ | 518 | ({ \ |
519 | int __retval = 0; \ | 519 | int __retval = wait_event_killable(wq, condition); \ |
520 | if (clnt->cl_intr) { \ | ||
521 | sigset_t oldmask; \ | ||
522 | rpc_clnt_sigmask(clnt, &oldmask); \ | ||
523 | __retval = wait_event_interruptible(wq, condition); \ | ||
524 | rpc_clnt_sigunmask(clnt, &oldmask); \ | ||
525 | } else \ | ||
526 | wait_event(wq, condition); \ | ||
527 | __retval; \ | 520 | __retval; \ |
528 | }) | 521 | }) |
529 | 522 | ||
diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h index a3ade89a64d2..df7c6b7a7ebb 100644 --- a/include/linux/nfs_mount.h +++ b/include/linux/nfs_mount.h | |||
@@ -48,7 +48,7 @@ struct nfs_mount_data { | |||
48 | /* bits in the flags field */ | 48 | /* bits in the flags field */ |
49 | 49 | ||
50 | #define NFS_MOUNT_SOFT 0x0001 /* 1 */ | 50 | #define NFS_MOUNT_SOFT 0x0001 /* 1 */ |
51 | #define NFS_MOUNT_INTR 0x0002 /* 1 */ | 51 | #define NFS_MOUNT_INTR 0x0002 /* 1 */ /* now unused, but ABI */ |
52 | #define NFS_MOUNT_SECURE 0x0004 /* 1 */ | 52 | #define NFS_MOUNT_SECURE 0x0004 /* 1 */ |
53 | #define NFS_MOUNT_POSIX 0x0008 /* 1 */ | 53 | #define NFS_MOUNT_POSIX 0x0008 /* 1 */ |
54 | #define NFS_MOUNT_NOCTO 0x0010 /* 1 */ | 54 | #define NFS_MOUNT_NOCTO 0x0010 /* 1 */ |
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h index d9d5c5ad826c..01879365f4ec 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h | |||
@@ -41,7 +41,6 @@ struct rpc_clnt { | |||
41 | struct rpc_iostats * cl_metrics; /* per-client statistics */ | 41 | struct rpc_iostats * cl_metrics; /* per-client statistics */ |
42 | 42 | ||
43 | unsigned int cl_softrtry : 1,/* soft timeouts */ | 43 | unsigned int cl_softrtry : 1,/* soft timeouts */ |
44 | cl_intr : 1,/* interruptible */ | ||
45 | cl_discrtry : 1,/* disconnect before retry */ | 44 | cl_discrtry : 1,/* disconnect before retry */ |
46 | cl_autobind : 1;/* use getport() */ | 45 | cl_autobind : 1;/* use getport() */ |
47 | 46 | ||
@@ -109,7 +108,6 @@ struct rpc_create_args { | |||
109 | 108 | ||
110 | /* Values for "flags" field */ | 109 | /* Values for "flags" field */ |
111 | #define RPC_CLNT_CREATE_HARDRTRY (1UL << 0) | 110 | #define RPC_CLNT_CREATE_HARDRTRY (1UL << 0) |
112 | #define RPC_CLNT_CREATE_INTR (1UL << 1) | ||
113 | #define RPC_CLNT_CREATE_AUTOBIND (1UL << 2) | 111 | #define RPC_CLNT_CREATE_AUTOBIND (1UL << 2) |
114 | #define RPC_CLNT_CREATE_NONPRIVPORT (1UL << 3) | 112 | #define RPC_CLNT_CREATE_NONPRIVPORT (1UL << 3) |
115 | #define RPC_CLNT_CREATE_NOPING (1UL << 4) | 113 | #define RPC_CLNT_CREATE_NOPING (1UL << 4) |
diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h index 8ea077db0099..19160e63d6ad 100644 --- a/include/linux/sunrpc/sched.h +++ b/include/linux/sunrpc/sched.h | |||
@@ -128,7 +128,6 @@ struct rpc_call_ops { | |||
128 | #define RPC_TASK_DYNAMIC 0x0080 /* task was kmalloc'ed */ | 128 | #define RPC_TASK_DYNAMIC 0x0080 /* task was kmalloc'ed */ |
129 | #define RPC_TASK_KILLED 0x0100 /* task was killed */ | 129 | #define RPC_TASK_KILLED 0x0100 /* task was killed */ |
130 | #define RPC_TASK_SOFT 0x0200 /* Use soft timeouts */ | 130 | #define RPC_TASK_SOFT 0x0200 /* Use soft timeouts */ |
131 | #define RPC_TASK_NOINTR 0x0400 /* uninterruptible task */ | ||
132 | 131 | ||
133 | #define RPC_IS_ASYNC(t) ((t)->tk_flags & RPC_TASK_ASYNC) | 132 | #define RPC_IS_ASYNC(t) ((t)->tk_flags & RPC_TASK_ASYNC) |
134 | #define RPC_IS_SWAPPER(t) ((t)->tk_flags & RPC_TASK_SWAPPER) | 133 | #define RPC_IS_SWAPPER(t) ((t)->tk_flags & RPC_TASK_SWAPPER) |
@@ -136,7 +135,6 @@ struct rpc_call_ops { | |||
136 | #define RPC_ASSASSINATED(t) ((t)->tk_flags & RPC_TASK_KILLED) | 135 | #define RPC_ASSASSINATED(t) ((t)->tk_flags & RPC_TASK_KILLED) |
137 | #define RPC_DO_CALLBACK(t) ((t)->tk_callback != NULL) | 136 | #define RPC_DO_CALLBACK(t) ((t)->tk_callback != NULL) |
138 | #define RPC_IS_SOFT(t) ((t)->tk_flags & RPC_TASK_SOFT) | 137 | #define RPC_IS_SOFT(t) ((t)->tk_flags & RPC_TASK_SOFT) |
139 | #define RPC_TASK_UNINTERRUPTIBLE(t) ((t)->tk_flags & RPC_TASK_NOINTR) | ||
140 | 138 | ||
141 | #define RPC_TASK_RUNNING 0 | 139 | #define RPC_TASK_RUNNING 0 |
142 | #define RPC_TASK_QUEUED 1 | 140 | #define RPC_TASK_QUEUED 1 |