Pull ceph updates from Ilya Dryomov: "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)" * tag 'ceph-for-5.4-rc1' of git://github.com/ceph/ceph-client: (41 commits) ceph: call ceph_mdsc_destroy from destroy_fs_client libceph: use ceph_kvmalloc() for osdmap arrays libceph: avoid a __vmalloc() deadlock in ceph_kvmalloc() ceph: allow object copies across different filesystems in the same cluster ceph: include ceph_debug.h in cache.c ceph: move static keyword to the front of declarations rbd: pull rbd_img_request_create() dout out into the callers ceph: reconnect connection if session hang in opening state libceph: drop unused con parameter of calc_target() ceph: use release_pages() directly rbd: fix response length parameter for encoded strings ceph: allow arbitrary security.* xattrs ceph: only set CEPH_I_SEC_INITED if we got a MAC label ceph: turn ceph_security_invalidate_secctx into static inline ceph: add buffered/direct exclusionary locking for reads and writes libceph: handle OSD op ceph_pagelist_append() errors ceph: don't return a value from void function ceph: don't freeze during write page faults ceph: update the mtime when truncating up ceph: fix indentation in __get_snap_name() ...
Showing the changes to include/linux (4 of 27 files). Show all
Unified · Split
| @@ -293,6 +293,7 @@ struct ceph_client *ceph_create_client(struct ceph_options *opt, void *private); · 292 unmodified lines | ||
| 293 | 293 | struct ceph_entity_addr *ceph_client_addr(struct ceph_client *client); |
| 294 | 294 | u64 ceph_client_gid(struct ceph_client *client); |
| 295 | 295 | extern void ceph_destroy_client(struct ceph_client *client); |
| 296 | +extern void ceph_reset_client_addr(struct ceph_client *client); | |
| 296 | 297 | extern int __ceph_open_session(struct ceph_client *client, |
| 297 | 298 | unsigned long started); |
| 298 | 299 | extern int ceph_open_session(struct ceph_client *client); |
| @@ -337,6 +337,7 @@ extern void ceph_msgr_flush(void); · 336 unmodified lines | ||
| 337 | 337 | extern void ceph_messenger_init(struct ceph_messenger *msgr, |
| 338 | 338 | struct ceph_entity_addr *myaddr); |
| 339 | 339 | extern void ceph_messenger_fini(struct ceph_messenger *msgr); |
| 340 | +extern void ceph_messenger_reset_nonce(struct ceph_messenger *msgr); | |
| 340 | 341 | |
| 341 | 342 | extern void ceph_con_init(struct ceph_connection *con, void *private, |
| 342 | 343 | const struct ceph_connection_operations *ops, |
| @@ -109,6 +109,7 @@ extern int ceph_monmap_contains(struct ceph_monmap *m, · 108 unmodified lines | ||
| 109 | 109 | |
| 110 | 110 | extern int ceph_monc_init(struct ceph_mon_client *monc, struct ceph_client *cl); |
| 111 | 111 | extern void ceph_monc_stop(struct ceph_mon_client *monc); |
| 112 | +extern void ceph_monc_reopen_session(struct ceph_mon_client *monc); | |
| 112 | 113 | |
| 113 | 114 | enum { |
| 114 | 115 | CEPH_SUB_MONMAP = 0, |
| @@ -381,6 +381,7 @@ extern void ceph_osdc_cleanup(void); · 380 unmodified lines | ||
| 381 | 381 | extern int ceph_osdc_init(struct ceph_osd_client *osdc, |
| 382 | 382 | struct ceph_client *client); |
| 383 | 383 | extern void ceph_osdc_stop(struct ceph_osd_client *osdc); |
| 384 | +extern void ceph_osdc_reopen_osds(struct ceph_osd_client *osdc); | |
| 384 | 385 | |
| 385 | 386 | extern void ceph_osdc_handle_reply(struct ceph_osd_client *osdc, |
| 386 | 387 | struct ceph_msg *msg); |
| @@ -388,6 +389,7 @@ extern void ceph_osdc_handle_map(struct ceph_osd_client *osdc, · 1 unmodified line | ||
| 388 | 389 | struct ceph_msg *msg); |
| 389 | 390 | void ceph_osdc_update_epoch_barrier(struct ceph_osd_client *osdc, u32 eb); |
| 390 | 391 | void ceph_osdc_abort_requests(struct ceph_osd_client *osdc, int err); |
| 392 | +void ceph_osdc_clear_abort_err(struct ceph_osd_client *osdc); | |
| 391 | 393 | |
| 392 | 394 | #define osd_req_op_data(oreq, whch, typ, fld) \ |
| 393 | 395 | ({ \ |