[GIT PULL] Ceph updates for 5.11-rc1

From: Ilya Dryomov
Date: Thu Dec 17 2020 - 11:28:44 EST

Hi Linus,

The following changes since commit 2c85ebc57b3e1817b6ce1a6b703928e113a90442:

Linux 5.10 (2020-12-13 14:41:30 -0800)

are available in the Git repository at:

https://github.com/ceph/ceph-client.git tags/ceph-for-5.11-rc1

for you to fetch changes up to 2f0df6cfa325d7106b8a65bc0e02db1086e3f73b:

libceph: drop ceph_auth_{create,update}_authorizer() (2020-12-14 23:21:50 +0100)

There is a build conflict caused by the split of crypto/sha.h into
crypto/sha1.h and crypto/sha2.h that affects net/ceph/messenger_v2.c.
The resolution is to include the latter, done in for-linus-merged
just in case.

The big ticket item here is support for msgr2 on-wire protocol, which
adds the option of full in-transit encryption using AES-GCM algorithm
(myself). On top of that we have a series to avoid intermittent
errors during recovery with recover_session=clean and some MDS request
encoding work from Jeff, a cap handling fix and assorted observability
improvements from Luis and Xiubo and a good number of cleanups. Luis
also ran into a corner case with quotas which sadly means that we are
back to denying cross-quota-realm renames.

Colin Ian King (1):
ceph: remove redundant assignment to variable i

Ilya Dryomov (34):
libceph: include middle_len in process_message() dout
libceph: lower exponential backoff delay
libceph: don't call reset_connection() on version/feature mismatches
libceph: split protocol reset bits out of reset_connection()
libceph: rename reset_connection() to ceph_con_reset_session()
libceph: clear con->peer_global_seq on RESETSESSION
libceph: remove redundant session reset log message
libceph: drop msg->ack_stamp field
libceph: handle discarding acked and requeued messages separately
libceph: change ceph_msg_data_cursor_init() to take cursor
libceph: change ceph_con_in_msg_alloc() to take hdr
libceph: factor out ceph_con_get_out_msg()
libceph: make sure our addr->port is zero and addr->nonce is non-zero
libceph: don't export ceph_messenger_{init_fini}() to modules
libceph: make con->state an int
libceph: rename and export con->state states
libceph: rename and export con->flags bits
libceph: export zero_page
libceph: export remaining protocol independent infrastructure
libceph: separate msgr1 protocol implementation
libceph: move msgr1 protocol implementation to its own file
libceph: move msgr1 protocol specific fields to its own struct
libceph: more insight into ticket expiry and invalidation
libceph: safer en/decoding of cephx requests and replies
libceph, ceph: incorporate nautilus cephx changes
libceph: amend cephx init_protocol() and build_request()
libceph: drop ac->ops->name field
libceph: factor out finish_auth()
libceph, ceph: get and handle cluster maps with addrvecs
libceph, rbd: ignore addr->type while comparing in some cases
libceph: introduce connection modes and ms_mode option
libceph, ceph: implement msgr2.1 protocol (crc and secure modes)
libceph, ceph: make use of __ceph_auth_get_authorizer() in msgr1
libceph: drop ceph_auth_{create,update}_authorizer()

Jeff Layton (15):
ceph: don't WARN when removing caps due to blocklisting
ceph: make fsc->mount_state an int
ceph: add new RECOVER mount_state when recovering session
ceph: remove timeout on allowing reconnect after blocklisting
ceph: queue MDS requests to REJECTED sessions when CLEANRECOVER is set
ceph: fix up some warnings on W=1 builds
ceph: acquire Fs caps when getting dir stats
ceph: ensure we have Fs caps when fetching dir link count
ceph: pass down the flags to grab_cache_page_write_begin
ceph: fix inode refcount leak when ceph_fill_inode on non-I_NEW inode fails
ceph: when filling trace, call ceph_get_inode outside of mutexes
ceph: don't reach into request header for readdir info
ceph: take a cred reference instead of tracking individual uid/gid
ceph: clean up argument lists to __prepare_send_request and __send_request
ceph: implement updated ceph_mds_request_head structure

Liu, Changcheng (1):
libceph: remove unused port macros

Luis Henriques (4):
ceph: fix race in concurrent __ceph_remove_cap invocations
ceph: downgrade warning from mdsmap decode to debug
Revert "ceph: allow rename operation under different quota realms"
ceph: add ceph.caps vxattr

Xiubo Li (4):
ceph: send dentry lease metrics to MDS daemon
ceph: add status debugfs file
ceph: add ceph.{cluster_fsid/client_id} vxattrs
ceph: set osdmap epoch for setxattr

drivers/block/rbd.c | 8 +-
fs/ceph/addr.c | 6 +-
fs/ceph/caps.c | 27 +-
fs/ceph/debugfs.c | 20 +
fs/ceph/dir.c | 9 +-
fs/ceph/inode.c | 41 +-
fs/ceph/locks.c | 8 +-
fs/ceph/mds_client.c | 280 ++-
fs/ceph/mds_client.h | 3 +-
fs/ceph/mdsmap.c | 25 +-
fs/ceph/metric.c | 18 +-
fs/ceph/metric.h | 14 +
fs/ceph/quota.c | 58 +-
fs/ceph/super.c | 14 +-
fs/ceph/super.h | 7 +-
fs/ceph/xattr.c | 81 +-
include/linux/ceph/auth.h | 68 +-
include/linux/ceph/ceph_features.h | 11 +-
include/linux/ceph/ceph_fs.h | 44 +-
include/linux/ceph/decode.h | 8 +
include/linux/ceph/libceph.h | 11 +-
include/linux/ceph/mdsmap.h | 2 +-
include/linux/ceph/messenger.h | 285 ++-
include/linux/ceph/msgr.h | 66 +-
include/linux/ceph/osdmap.h | 4 +-
net/ceph/Kconfig | 3 +
net/ceph/Makefile | 3 +-
net/ceph/auth.c | 408 ++++-
net/ceph/auth_none.c | 5 +-
net/ceph/auth_x.c | 298 +++-
net/ceph/auth_x_protocol.h | 3 +-
net/ceph/ceph_common.c | 63 +
net/ceph/ceph_strings.c | 28 +
net/ceph/crypto.h | 3 +
net/ceph/decode.c | 101 ++
net/ceph/messenger.c | 2252 +++++------------------
net/ceph/messenger_v1.c | 1506 ++++++++++++++++
net/ceph/messenger_v2.c | 3443 ++++++++++++++++++++++++++++++++++++
net/ceph/mon_client.c | 320 +++-
net/ceph/osd_client.c | 111 +-
net/ceph/osdmap.c | 45 +-
41 files changed, 7371 insertions(+), 2339 deletions(-)
create mode 100644 net/ceph/messenger_v1.c
create mode 100644 net/ceph/messenger_v2.c