[GIT PULL] Ceph updates for 5.4-rc1
From: Ilya Dryomov
Date: Wed Sep 25 2019 - 13:20:29 EST
Hi Linus,
The following changes since commit 4d856f72c10ecb060868ed10ff1b1453943fc6c8:
Linux 5.3 (2019-09-15 14:19:32 -0700)
are available in the Git repository at:
https://github.com/ceph/ceph-client.git tags/ceph-for-5.4-rc1
for you to fetch changes up to 3ee5a7015c8b7cb4de21f7345f8381946f2fce55:
ceph: call ceph_mdsc_destroy from destroy_fs_client (2019-09-16 12:06:25 +0200)
----------------------------------------------------------------
The highlights are:
- automatic recovery of a blacklisted filesystem session (Zheng Yan).
This is disabled by default and can be enabled by mounting with the
new "recover_session=clean" option.
- serialize buffered reads and O_DIRECT writes (Jeff Layton). Care is
taken to avoid serializing O_DIRECT reads and writes with each other,
this is based on the exclusion scheme from NFS.
- handle large osdmaps better in the face of fragmented memory (myself)
- don't limit what security.* xattrs can be get or set (Jeff Layton).
We were overly restrictive here, unnecessarily preventing things like
file capability sets stored in security.capability from working.
- allow copy_file_range() within the same inode and across different
filesystems within the same cluster (Luis Henriques)
----------------------------------------------------------------
David Disseldorp (1):
libceph: handle OSD op ceph_pagelist_append() errors
Dongsheng Yang (1):
rbd: fix response length parameter for encoded strings
Erqi Chen (1):
ceph: reconnect connection if session hang in opening state
Ilya Dryomov (6):
ceph: fix indentation in __get_snap_name()
libceph: drop unused con parameter of calc_target()
rbd: pull rbd_img_request_create() dout out into the callers
ceph: include ceph_debug.h in cache.c
libceph: avoid a __vmalloc() deadlock in ceph_kvmalloc()
libceph: use ceph_kvmalloc() for osdmap arrays
Jeff Layton (18):
ceph: allow copy_file_range when src and dst inode are same
ceph: don't list vxattrs in listxattr()
ceph: don't SetPageError on writepage errors
ceph: remove ceph_get_cap_mds and __ceph_get_cap_mds
ceph: fetch cap_gen under spinlock in ceph_add_cap
ceph: eliminate session->s_trim_caps
ceph: fix comments over ceph_add_cap
ceph: have __mark_caps_flushing return flush_tid
ceph: remove unneeded test in try_flush_caps
ceph: remove CEPH_I_NOFLUSH
ceph: remove incorrect comment above __send_cap
ceph: update the mtime when truncating up
ceph: don't freeze during write page faults
ceph: add buffered/direct exclusionary locking for reads and writes
ceph: turn ceph_security_invalidate_secctx into static inline
ceph: only set CEPH_I_SEC_INITED if we got a MAC label
ceph: allow arbitrary security.* xattrs
ceph: call ceph_mdsc_destroy from destroy_fs_client
John Hubbard (2):
ceph: don't return a value from void function
ceph: use release_pages() directly
Krzysztof Wilczynski (1):
ceph: move static keyword to the front of declarations
Luis Henriques (2):
ceph: fix directories inode i_blkbits initialization
ceph: allow object copies across different filesystems in the same cluster
Yan, Zheng (9):
libceph: add function that reset client's entity addr
libceph: add function that clears osd client's abort_err
ceph: allow closing session in restarting/reconnect state
ceph: track and report error of async metadata operation
ceph: pass filp to ceph_get_caps()
ceph: add helper function that forcibly reconnects to ceph cluster.
ceph: return -EIO if read/write against filp that lost file locks
ceph: invalidate all write mode filp after reconnect
ceph: auto reconnect after blacklisted
Documentation/filesystems/ceph.txt | 14 +++
drivers/block/rbd.c | 18 ++--
fs/ceph/Makefile | 2 +-
fs/ceph/addr.c | 61 +++++++------
fs/ceph/cache.c | 2 +
fs/ceph/caps.c | 173 +++++++++++++++++++------------------
fs/ceph/debugfs.c | 1 -
fs/ceph/export.c | 60 ++++++-------
fs/ceph/file.c | 104 +++++++++++++---------
fs/ceph/inode.c | 50 ++++++-----
fs/ceph/io.c | 163 ++++++++++++++++++++++++++++++++++
fs/ceph/io.h | 12 +++
fs/ceph/locks.c | 8 +-
fs/ceph/mds_client.c | 110 +++++++++++++++++------
fs/ceph/mds_client.h | 8 +-
fs/ceph/super.c | 52 +++++++++--
fs/ceph/super.h | 49 +++++++----
fs/ceph/xattr.c | 76 ++--------------
include/linux/ceph/libceph.h | 1 +
include/linux/ceph/messenger.h | 1 +
include/linux/ceph/mon_client.h | 1 +
include/linux/ceph/osd_client.h | 2 +
net/ceph/ceph_common.c | 37 ++++++--
net/ceph/messenger.c | 6 ++
net/ceph/mon_client.c | 7 ++
net/ceph/osd_client.c | 65 +++++++++++---
net/ceph/osdmap.c | 69 +++++++++------
27 files changed, 767 insertions(+), 385 deletions(-)
create mode 100644 fs/ceph/io.c
create mode 100644 fs/ceph/io.h