-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'for-3.18' of git://linux-nfs.org/~bfields/linux
Pull nfsd updates from Bruce Fields: "Highlights: - support the NFSv4.2 SEEK operation (allowing clients to support SEEK_HOLE/SEEK_DATA), thanks to Anna. - end the grace period early in a number of cases, mitigating a long-standing annoyance, thanks to Jeff - improve SMP scalability, thanks to Trond" * 'for-3.18' of git://linux-nfs.org/~bfields/linux: (55 commits) nfsd: eliminate "to_delegation" define NFSD: Implement SEEK NFSD: Add generic v4.2 infrastructure svcrdma: advertise the correct max payload nfsd: introduce nfsd4_callback_ops nfsd: split nfsd4_callback initialization and use nfsd: introduce a generic nfsd4_cb nfsd: remove nfsd4_callback.cb_op nfsd: do not clear rpc_resp in nfsd4_cb_done_sequence nfsd: fix nfsd4_cb_recall_done error handling nfsd4: clarify how grace period ends nfsd4: stop grace_time update at end of grace period nfsd: skip subsequent UMH "create" operations after the first one for v4.0 clients nfsd: set and test NFSD4_CLIENT_STABLE bit to reduce nfsdcltrack upcalls nfsd: serialize nfsdcltrack upcalls for a particular client nfsd: pass extra info in env vars to upcalls to allow for early grace period end nfsd: add a v4_end_grace file to /proc/fs/nfsd lockd: add a /proc/fs/lockd/nlm_end_grace file nfsd: reject reclaim request when client has already sent RECLAIM_COMPLETE nfsd: remove redundant boot_time parm from grace_done client tracking op ...
- Loading branch information
Showing
35 changed files
with
942 additions
and
406 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
/* | ||
* Procfs support for lockd | ||
* | ||
* Copyright (c) 2014 Jeff Layton <jlayton@primarydata.com> | ||
*/ | ||
|
||
#include <linux/fs.h> | ||
#include <linux/proc_fs.h> | ||
#include <linux/module.h> | ||
#include <linux/nsproxy.h> | ||
#include <net/net_namespace.h> | ||
|
||
#include "netns.h" | ||
#include "procfs.h" | ||
|
||
/* | ||
* We only allow strings that start with 'Y', 'y', or '1'. | ||
*/ | ||
static ssize_t | ||
nlm_end_grace_write(struct file *file, const char __user *buf, size_t size, | ||
loff_t *pos) | ||
{ | ||
char *data; | ||
struct lockd_net *ln = net_generic(current->nsproxy->net_ns, | ||
lockd_net_id); | ||
|
||
if (size < 1) | ||
return -EINVAL; | ||
|
||
data = simple_transaction_get(file, buf, size); | ||
if (IS_ERR(data)) | ||
return PTR_ERR(data); | ||
|
||
switch(data[0]) { | ||
case 'Y': | ||
case 'y': | ||
case '1': | ||
locks_end_grace(&ln->lockd_manager); | ||
break; | ||
default: | ||
return -EINVAL; | ||
} | ||
|
||
return size; | ||
} | ||
|
||
static ssize_t | ||
nlm_end_grace_read(struct file *file, char __user *buf, size_t size, | ||
loff_t *pos) | ||
{ | ||
struct lockd_net *ln = net_generic(current->nsproxy->net_ns, | ||
lockd_net_id); | ||
char resp[3]; | ||
|
||
resp[0] = list_empty(&ln->lockd_manager.list) ? 'Y' : 'N'; | ||
resp[1] = '\n'; | ||
resp[2] = '\0'; | ||
|
||
return simple_read_from_buffer(buf, size, pos, resp, sizeof(resp)); | ||
} | ||
|
||
static const struct file_operations lockd_end_grace_operations = { | ||
.write = nlm_end_grace_write, | ||
.read = nlm_end_grace_read, | ||
.llseek = default_llseek, | ||
.release = simple_transaction_release, | ||
.owner = THIS_MODULE, | ||
}; | ||
|
||
int __init | ||
lockd_create_procfs(void) | ||
{ | ||
struct proc_dir_entry *entry; | ||
|
||
entry = proc_mkdir("fs/lockd", NULL); | ||
if (!entry) | ||
return -ENOMEM; | ||
entry = proc_create("nlm_end_grace", S_IRUGO|S_IWUSR, entry, | ||
&lockd_end_grace_operations); | ||
if (!entry) { | ||
remove_proc_entry("fs/lockd", NULL); | ||
return -ENOMEM; | ||
} | ||
return 0; | ||
} | ||
|
||
void __exit | ||
lockd_remove_procfs(void) | ||
{ | ||
remove_proc_entry("fs/lockd/nlm_end_grace", NULL); | ||
remove_proc_entry("fs/lockd", NULL); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/* | ||
* Procfs support for lockd | ||
* | ||
* Copyright (c) 2014 Jeff Layton <jlayton@primarydata.com> | ||
*/ | ||
#ifndef _LOCKD_PROCFS_H | ||
#define _LOCKD_PROCFS_H | ||
|
||
#include <linux/kconfig.h> | ||
|
||
#if IS_ENABLED(CONFIG_PROC_FS) | ||
int lockd_create_procfs(void); | ||
void lockd_remove_procfs(void); | ||
#else | ||
static inline int | ||
lockd_create_procfs(void) | ||
{ | ||
return 0; | ||
} | ||
|
||
static inline void | ||
lockd_remove_procfs(void) | ||
{ | ||
return; | ||
} | ||
#endif /* IS_ENABLED(CONFIG_PROC_FS) */ | ||
|
||
#endif /* _LOCKD_PROCFS_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,5 +3,6 @@ | |
# | ||
|
||
obj-$(CONFIG_NFS_ACL_SUPPORT) += nfs_acl.o | ||
|
||
nfs_acl-objs := nfsacl.o | ||
|
||
obj-$(CONFIG_GRACE_PERIOD) += grace.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.