[GIT PULL] fuse update for 4.20

From: Miklos Szeredi
Date: Wed Oct 31 2018 - 16:31:52 EST


Hi Linus,

Please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git tags/fuse-update-4.20

As well as the usual bug fixes, this adds the following new features:

- cached readdir and readlink
- max I/O size increased from 128k to 1M
- improved performance and scalability of request queues
- copy_file_range support

The only non-fuse bits are trivial cleanups of macros in <linux/bitops.h>.

Thanks,
Miklos

----------------------------------------------------------------
Constantine Shulyupin (1):
fuse: add max_pages to init_out

Dan Schatzberg (1):
fuse: enable caching of symlinks

Kirill Tkhai (10):
fuse: Fix use-after-free in fuse_dev_do_read()
fuse: Fix use-after-free in fuse_dev_do_write()
fuse: use list_first_entry() in flush_bg_queue()
fuse: use READ_ONCE on congestion_threshold and max_background
fuse: add locking to max_background and congestion_threshold changes
fuse: introduce fc->bg_lock
fuse: do not take fc->lock in fuse_request_send_background()
fuse: change interrupt requests allocation algorithm
fuse: kill req->intr_unique
fuse: Use hash table to link processing request

Miklos Szeredi (18):
fuse: set FR_SENT while locked
fuse: fix blocked_waitq wakeup
fuse: split out readdir.c
fuse: add FOPEN_CACHE_DIR
fuse: extract fuse_emit() helper
fuse: allow caching readdir
fuse: allow using readdir cache
fuse: add readdir cache version
fuse: use mtime for readdir cache verification
fuse: use iversion for readdir cache verification
fuse: reduce size of struct fuse_inode
fuse: allocate page array more efficiently
fuse: realloc page array
bitops: protect variables in set_mask_bits() macro
bitops: protect variables in bit_clear_unless() macro
fuse: allow fine grained attr cache invaldation
fuse: don't need GETATTR after every READ
fuse: only invalidate atime in direct read

Niels de Vos (1):
fuse: add support for copy_file_range()

---
fs/fuse/Makefile | 2 +-
fs/fuse/control.c | 34 ++-
fs/fuse/dev.c | 221 +++++++++++-------
fs/fuse/dir.c | 381 +++++++++----------------------
fs/fuse/file.c | 158 ++++++++++---
fs/fuse/fuse_i.h | 124 ++++++++--
fs/fuse/inode.c | 53 +++--
fs/fuse/readdir.c | 569 ++++++++++++++++++++++++++++++++++++++++++++++
include/linux/bitops.h | 30 +--
include/uapi/linux/fuse.h | 119 ++++++----
10 files changed, 1201 insertions(+), 490 deletions(-)
create mode 100644 fs/fuse/readdir.c