Merge tag 'ceph-for-4.15-rc1' of git://github.com/ceph/ceph-client
Pull ceph updates from Ilya Dryomov: "We have a set of file locking improvements from Zheng, rbd rw/ro state handling code cleanup from myself and some assorted CephFS fixes from Jeff. rbd now defaults to single-major=Y, lifting the limit of ~240 rbd images per host for everyone" * tag 'ceph-for-4.15-rc1' of git://github.com/ceph/ceph-client: rbd: default to single-major device number scheme libceph: don't WARN() if user tries to add invalid key rbd: set discard_alignment to zero ceph: silence sparse endianness warning in encode_caps_cb ceph: remove the bump of i_version ceph: present consistent fsid, regardless of arch endianness ceph: clean up spinlocking and list handling around cleanup_cap_releases() rbd: get rid of rbd_mapping::read_only rbd: fix and simplify rbd_ioctl_set_ro() ceph: remove unused and redundant variable dropping ceph: mark expected switch fall-throughs ceph: -EINVAL on decoding failure in ceph_mdsc_handle_fsmap() ceph: disable cached readdir after dropping positive dentry ceph: fix bool initialization/comparison ceph: handle 'session get evicted while there are file locks' ceph: optimize flock encoding during reconnect ceph: make lock_to_ceph_filelock() static ceph: keep auth cap when inode has flocks or posix locks
This commit is contained in:
@@ -47,28 +47,38 @@ unsigned int ceph_str_hash_rjenkins(const char *str, unsigned int length)
|
||||
|
||||
/* handle the last 11 bytes */
|
||||
c = c + length;
|
||||
switch (len) { /* all the case statements fall through */
|
||||
switch (len) {
|
||||
case 11:
|
||||
c = c + ((__u32)k[10] << 24);
|
||||
/* fall through */
|
||||
case 10:
|
||||
c = c + ((__u32)k[9] << 16);
|
||||
/* fall through */
|
||||
case 9:
|
||||
c = c + ((__u32)k[8] << 8);
|
||||
/* the first byte of c is reserved for the length */
|
||||
/* fall through */
|
||||
case 8:
|
||||
b = b + ((__u32)k[7] << 24);
|
||||
/* fall through */
|
||||
case 7:
|
||||
b = b + ((__u32)k[6] << 16);
|
||||
/* fall through */
|
||||
case 6:
|
||||
b = b + ((__u32)k[5] << 8);
|
||||
/* fall through */
|
||||
case 5:
|
||||
b = b + k[4];
|
||||
/* fall through */
|
||||
case 4:
|
||||
a = a + ((__u32)k[3] << 24);
|
||||
/* fall through */
|
||||
case 3:
|
||||
a = a + ((__u32)k[2] << 16);
|
||||
/* fall through */
|
||||
case 2:
|
||||
a = a + ((__u32)k[1] << 8);
|
||||
/* fall through */
|
||||
case 1:
|
||||
a = a + k[0];
|
||||
/* case 0: nothing left to add */
|
||||
|
@@ -37,7 +37,9 @@ static int set_secret(struct ceph_crypto_key *key, void *buf)
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
|
||||
WARN_ON(!key->len);
|
||||
if (!key->len)
|
||||
return -EINVAL;
|
||||
|
||||
key->key = kmemdup(buf, key->len, GFP_NOIO);
|
||||
if (!key->key) {
|
||||
ret = -ENOMEM;
|
||||
|
@@ -430,6 +430,7 @@ static void ceph_sock_state_change(struct sock *sk)
|
||||
switch (sk->sk_state) {
|
||||
case TCP_CLOSE:
|
||||
dout("%s TCP_CLOSE\n", __func__);
|
||||
/* fall through */
|
||||
case TCP_CLOSE_WAIT:
|
||||
dout("%s TCP_CLOSE_WAIT\n", __func__);
|
||||
con_sock_state_closing(con);
|
||||
|
@@ -1279,9 +1279,10 @@ static struct ceph_msg *mon_alloc_msg(struct ceph_connection *con,
|
||||
|
||||
/*
|
||||
* Older OSDs don't set reply tid even if the orignal
|
||||
* request had a non-zero tid. Workaround this weirdness
|
||||
* by falling through to the allocate case.
|
||||
* request had a non-zero tid. Work around this weirdness
|
||||
* by allocating a new message.
|
||||
*/
|
||||
/* fall through */
|
||||
case CEPH_MSG_MON_MAP:
|
||||
case CEPH_MSG_MDS_MAP:
|
||||
case CEPH_MSG_OSD_MAP:
|
||||
|
Reference in New Issue
Block a user