mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 17:57:38 -04:00
Merge tag 'ceph-for-5.2-rc1' of git://github.com/ceph/ceph-client
Pull ceph updates from Ilya Dryomov:
"On the filesystem side we have:
- a fix to enforce quotas set above the mount point (Luis Henriques)
- support for exporting snapshots through NFS (Zheng Yan)
- proper statx implementation (Jeff Layton). statx flags are mapped
to MDS caps, with AT_STATX_{DONT,FORCE}_SYNC taken into account.
- some follow-up dentry name handling fixes, in particular
elimination of our hand-rolled helper and the switch to __getname()
as suggested by Al (Jeff Layton)
- a set of MDS client cleanups in preparation for async MDS requests
in the future (Jeff Layton)
- a fix to sync the filesystem before remounting (Jeff Layton)
On the rbd side, work is on-going on object-map and fast-diff image
features"
* tag 'ceph-for-5.2-rc1' of git://github.com/ceph/ceph-client: (29 commits)
ceph: flush dirty inodes before proceeding with remount
ceph: fix unaligned access in ceph_send_cap_releases
libceph: make ceph_pr_addr take an struct ceph_entity_addr pointer
libceph: fix unaligned accesses in ceph_entity_addr handling
rbd: don't assert on writes to snapshots
rbd: client_mutex is never nested
ceph: print inode number in __caps_issued_mask debugging messages
ceph: just call get_session in __ceph_lookup_mds_session
ceph: simplify arguments and return semantics of try_get_cap_refs
ceph: fix comment over ceph_drop_caps_for_unlink
ceph: move wait for mds request into helper function
ceph: have ceph_mdsc_do_request call ceph_mdsc_submit_request
ceph: after an MDS request, do callback and completions
ceph: use pathlen values returned by set_request_path_attr
ceph: use __getname/__putname in ceph_mdsc_build_path
ceph: use ceph_mdsc_build_path instead of clone_dentry_name
ceph: fix potential use-after-free in ceph_mdsc_build_path
ceph: dump granular cap info in "caps" debugfs file
ceph: make iterate_session_caps a public symbol
ceph: fix NULL pointer deref when debugging is enabled
...
This commit is contained in:
@@ -436,6 +436,12 @@ union ceph_mds_request_args {
|
||||
__le64 length; /* num bytes to lock from start */
|
||||
__u8 wait; /* will caller wait for lock to become available? */
|
||||
} __attribute__ ((packed)) filelock_change;
|
||||
struct {
|
||||
__le32 mask; /* CEPH_CAP_* */
|
||||
__le64 snapid;
|
||||
__le64 parent;
|
||||
__le32 hash;
|
||||
} __attribute__ ((packed)) lookupino;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#define CEPH_MDS_FLAG_REPLAY 1 /* this is a replayed op */
|
||||
|
||||
@@ -323,7 +323,8 @@ struct ceph_connection {
|
||||
};
|
||||
|
||||
|
||||
extern const char *ceph_pr_addr(const struct sockaddr_storage *ss);
|
||||
extern const char *ceph_pr_addr(const struct ceph_entity_addr *addr);
|
||||
|
||||
extern int ceph_parse_ips(const char *c, const char *end,
|
||||
struct ceph_entity_addr *addr,
|
||||
int max_count, int *count);
|
||||
|
||||
@@ -110,17 +110,16 @@ struct ceph_object_id {
|
||||
int name_len;
|
||||
};
|
||||
|
||||
#define __CEPH_OID_INITIALIZER(oid) { .name = (oid).inline_name }
|
||||
|
||||
#define CEPH_DEFINE_OID_ONSTACK(oid) \
|
||||
struct ceph_object_id oid = __CEPH_OID_INITIALIZER(oid)
|
||||
|
||||
static inline void ceph_oid_init(struct ceph_object_id *oid)
|
||||
{
|
||||
oid->name = oid->inline_name;
|
||||
oid->name_len = 0;
|
||||
*oid = (struct ceph_object_id) __CEPH_OID_INITIALIZER(*oid);
|
||||
}
|
||||
|
||||
#define CEPH_OID_INIT_ONSTACK(oid) \
|
||||
({ ceph_oid_init(&oid); oid; })
|
||||
#define CEPH_DEFINE_OID_ONSTACK(oid) \
|
||||
struct ceph_object_id oid = CEPH_OID_INIT_ONSTACK(oid)
|
||||
|
||||
static inline bool ceph_oid_empty(const struct ceph_object_id *oid)
|
||||
{
|
||||
return oid->name == oid->inline_name && !oid->name_len;
|
||||
|
||||
Reference in New Issue
Block a user