History

Merge tag 'nfsd-5.4' of git://linux-nfs.org/~bfields/linux

Pull nfsd updates from Bruce Fields: "Highlights: - Add a new knfsd file cache, so that we don't have to open and close on each (NFSv2/v3) READ or WRITE. This can speed up read and write in some cases. It also replaces our readahead cache. - Prevent silent data loss on write errors, by treating write errors like server reboots for the purposes of write caching, thus forcing clients to resend their writes. - Tweak the code that allocates sessions to be more forgiving, so that NFSv4.1 mounts are less likely to hang when a server already has a lot of clients. - Eliminate an arbitrary limit on NFSv4 ACL sizes; they should now be limited only by the backend filesystem and the maximum RPC size. - Allow the server to enforce use of the correct kerberos credentials when a client reclaims state after a reboot. And some miscellaneous smaller bugfixes and cleanup" * tag 'nfsd-5.4' of git://linux-nfs.org/~bfields/linux: (34 commits) sunrpc: clean up indentation issue nfsd: fix nfs read eof detection nfsd: Make nfsd_reset_boot_verifier_locked static nfsd: degraded slot-count more gracefully as allocation nears exhaustion. nfsd: handle drc over-allocation gracefully. nfsd: add support for upcall version 2 nfsd: add a "GetVersion" upcall for nfsdcld nfsd: Reset the boot verifier on all write I/O errors nfsd: Don't garbage collect files that might contain write errors nfsd: Support the server resetting the boot verifier nfsd: nfsd_file cache entries should be per net namespace nfsd: eliminate an unnecessary acl size limit Deprecate nfsd fault injection nfsd: remove duplicated include from filecache.c nfsd: Fix the documentation for svcxdr_tmpalloc() nfsd: Fix up some unused variable warnings nfsd: close cached files prior to a REMOVE or RENAME that would replace target nfsd: rip out the raparms cache nfsd: have nfsd_test_lock use the nfsd_file cache nfsd: hook up nfs4_preprocess_stateid_op to the nfsd_file cache ...

Linus Torvalds committed 7 years ago

Commit 298fb762 parents 8f744bd e41f9ef40 files · +2083 −600Browse files

Showing the changes to include/linux (4 of 40 files). Show all

Unified · Split

4 files
  1. include/linux/fs.h +5 −0
  2. include/linux/fsnotify_backend.h +2 −0
  3. include/linux/sunrpc/cache.h +4 −3
  4. include/linux/sunrpc/svc_rdma.h +3 −3
include/linux/fs.h+5−0
@@ -1168,6 +1168,11 @@ extern void lease_get_mtime(struct inode *, struct timespec64 *time); · 1167 unmodified lines
11681168 extern int generic_setlease(struct file *, long, struct file_lock **, void **priv);
11691169 extern int vfs_setlease(struct file *, long, struct file_lock **, void **);
11701170 extern int lease_modify(struct file_lock *, int, struct list_head *);
1171+
1172+struct notifier_block;
1173+extern int lease_register_notifier(struct notifier_block *);
1174+extern void lease_unregister_notifier(struct notifier_block *);
1175+
11711176 struct files_struct;
11721177 extern void show_fd_locks(struct seq_file *f,
11731178 struct file *filp, struct files_struct *files);
include/linux/fsnotify_backend.h+2−0
@@ -475,6 +475,8 @@ extern void fsnotify_destroy_mark(struct fsnotify_mark *mark, · 474 unmodified lines
475475 extern void fsnotify_detach_mark(struct fsnotify_mark *mark);
476476 /* free mark */
477477 extern void fsnotify_free_mark(struct fsnotify_mark *mark);
478+/* Wait until all marks queued for destruction are destroyed */
479+extern void fsnotify_wait_marks_destroyed(void);
478480 /* run all the marks in a group, and clear all of the marks attached to given object type */
479481 extern void fsnotify_clear_marks_by_group(struct fsnotify_group *group, unsigned int type);
480482 /* run all the marks in a group, and clear all of the vfsmount marks */
include/linux/sunrpc/cache.h+4−3
@@ -87,6 +87,7 @@ struct cache_detail { · 86 unmodified lines
8787 int has_died);
8888
8989 struct cache_head * (*alloc)(void);
90+ void (*flush)(void);
9091 int (*match)(struct cache_head *orig, struct cache_head *new);
9192 void (*init)(struct cache_head *orig, struct cache_head *new);
9293 void (*update)(struct cache_head *orig, struct cache_head *new);
@@ -107,9 +108,9 @@ struct cache_detail { · 14 unmodified lines
107108 /* fields for communication over channel */
108109 struct list_head queue;
109110
110− atomic_t readers; /* how many time is /chennel open */
111− time_t last_close; /* if no readers, when did last close */
112− time_t last_warn; /* when we last warned about no readers */
111+ atomic_t writers; /* how many time is /channel open */
112+ time_t last_close; /* if no writers, when did last close */
113+ time_t last_warn; /* when we last warned about no writers */
113114
114115 union {
115116 struct proc_dir_entry *procfs;
include/linux/sunrpc/svc_rdma.h+3−3
@@ -42,6 +42,7 @@ · 41 unmodified lines
4242
4343 #ifndef SVC_RDMA_H
4444 #define SVC_RDMA_H
45+#include <linux/llist.h>
4546 #include <linux/sunrpc/xdr.h>
4647 #include <linux/sunrpc/svcsock.h>
4748 #include <linux/sunrpc/rpc_rdma.h>
@@ -107,8 +108,7 @@ struct svcxprt_rdma { · 59 unmodified lines
107108 struct list_head sc_read_complete_q;
108109 struct work_struct sc_work;
109110
110− spinlock_t sc_recv_lock;
111− struct list_head sc_recv_ctxts;
111+ struct llist_head sc_recv_ctxts;
112112 };
113113 /* sc_flags */
114114 #define RDMAXPRT_CONN_PENDING 3
@@ -125,6 +125,7 @@ enum { · 10 unmodified lines
125125 #define RPCSVC_MAXPAYLOAD_RDMA RPCSVC_MAXPAYLOAD
126126
127127 struct svc_rdma_recv_ctxt {
128+ struct llist_node rc_node;
128129 struct list_head rc_list;
129130 struct ib_recv_wr rc_recv_wr;
130131 struct ib_cqe rc_cqe;
@@ -200,7 +201,6 @@ extern struct svc_xprt_class svc_rdma_bc_class; · 69 unmodified lines
200201 #endif
201202
202203 /* svc_rdma.c */
203−extern struct workqueue_struct *svc_rdma_wq;
204204 extern int svc_rdma_init(void);
205205 extern void svc_rdma_cleanup(void);
206206

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t