aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2013-09-04 10:08:54 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2013-09-04 12:26:32 -0400
commitf6de7a39c181dfb8a2c534661a53c73afb3081cd (patch)
tree69a0d52d55f0a32e83bba6a0cd20df154a38f06a /fs/nfs
parentef1820f9be27b6ad158f433ab38002ab8131db4d (diff)
NFSv4: Document the recover_lost_locks kernel parameter
Rename the new 'recover_locks' kernel parameter to 'recover_lost_locks' and change the default to 'false'. Document why in Documentation/kernel-parameters.txt Move the 'recover_lost_locks' kernel parameter to fs/nfs/super.c to make it easy to backport to kernels prior to 3.6.x, which don't have a separate NFSv4 module. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/nfs4_fs.h1
-rw-r--r--fs/nfs/nfs4proc.c8
-rw-r--r--fs/nfs/super.c8
3 files changed, 10 insertions, 7 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index 64118316a407..277407df6d47 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
@@ -372,6 +372,7 @@ struct dentry *nfs4_try_mount(int, const char *, struct nfs_mount_info *, struct
372extern bool nfs4_disable_idmapping; 372extern bool nfs4_disable_idmapping;
373extern unsigned short max_session_slots; 373extern unsigned short max_session_slots;
374extern unsigned short send_implementation_id; 374extern unsigned short send_implementation_id;
375extern bool recover_lost_locks;
375 376
376#define NFS4_CLIENT_ID_UNIQ_LEN (64) 377#define NFS4_CLIENT_ID_UNIQ_LEN (64)
377extern char nfs4_client_id_uniquifier[NFS4_CLIENT_ID_UNIQ_LEN]; 378extern char nfs4_client_id_uniquifier[NFS4_CLIENT_ID_UNIQ_LEN];
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 1eb694e0f305..535011a27415 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -5523,12 +5523,6 @@ static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request
5523 return err; 5523 return err;
5524} 5524}
5525 5525
5526bool recover_locks = true;
5527module_param(recover_locks, bool, 0644);
5528MODULE_PARM_DESC(recover_locks,
5529 "If the server reports that a lock might be lost, "
5530 "try to recovery it risking corruption.");
5531
5532static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request) 5526static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request)
5533{ 5527{
5534 struct nfs_server *server = NFS_SERVER(state->inode); 5528 struct nfs_server *server = NFS_SERVER(state->inode);
@@ -5540,7 +5534,7 @@ static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request
5540 err = nfs4_set_lock_state(state, request); 5534 err = nfs4_set_lock_state(state, request);
5541 if (err != 0) 5535 if (err != 0)
5542 return err; 5536 return err;
5543 if (!recover_locks) { 5537 if (!recover_lost_locks) {
5544 set_bit(NFS_LOCK_LOST, &request->fl_u.nfs4_fl.owner->ls_flags); 5538 set_bit(NFS_LOCK_LOST, &request->fl_u.nfs4_fl.owner->ls_flags);
5545 return 0; 5539 return 0;
5546 } 5540 }
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index f2071d221c77..6ad9053d8906 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -2758,6 +2758,7 @@ bool nfs4_disable_idmapping = true;
2758unsigned short max_session_slots = NFS4_DEF_SLOT_TABLE_SIZE; 2758unsigned short max_session_slots = NFS4_DEF_SLOT_TABLE_SIZE;
2759unsigned short send_implementation_id = 1; 2759unsigned short send_implementation_id = 1;
2760char nfs4_client_id_uniquifier[NFS4_CLIENT_ID_UNIQ_LEN] = ""; 2760char nfs4_client_id_uniquifier[NFS4_CLIENT_ID_UNIQ_LEN] = "";
2761bool recover_lost_locks = false;
2761 2762
2762EXPORT_SYMBOL_GPL(nfs_callback_set_tcpport); 2763EXPORT_SYMBOL_GPL(nfs_callback_set_tcpport);
2763EXPORT_SYMBOL_GPL(nfs_callback_tcpport); 2764EXPORT_SYMBOL_GPL(nfs_callback_tcpport);
@@ -2766,6 +2767,7 @@ EXPORT_SYMBOL_GPL(nfs4_disable_idmapping);
2766EXPORT_SYMBOL_GPL(max_session_slots); 2767EXPORT_SYMBOL_GPL(max_session_slots);
2767EXPORT_SYMBOL_GPL(send_implementation_id); 2768EXPORT_SYMBOL_GPL(send_implementation_id);
2768EXPORT_SYMBOL_GPL(nfs4_client_id_uniquifier); 2769EXPORT_SYMBOL_GPL(nfs4_client_id_uniquifier);
2770EXPORT_SYMBOL_GPL(recover_lost_locks);
2769 2771
2770#define NFS_CALLBACK_MAXPORTNR (65535U) 2772#define NFS_CALLBACK_MAXPORTNR (65535U)
2771 2773
@@ -2803,4 +2805,10 @@ MODULE_PARM_DESC(send_implementation_id,
2803 "Send implementation ID with NFSv4.1 exchange_id"); 2805 "Send implementation ID with NFSv4.1 exchange_id");
2804MODULE_PARM_DESC(nfs4_unique_id, "nfs_client_id4 uniquifier string"); 2806MODULE_PARM_DESC(nfs4_unique_id, "nfs_client_id4 uniquifier string");
2805 2807
2808module_param(recover_lost_locks, bool, 0644);
2809MODULE_PARM_DESC(recover_lost_locks,
2810 "If the server reports that a lock might be lost, "
2811 "try to recover it risking data corruption.");
2812
2813
2806#endif /* CONFIG_NFS_V4 */ 2814#endif /* CONFIG_NFS_V4 */