Commit eb24fdd8 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'ceph-for-5.7-rc5' of git://github.com/ceph/ceph-client

Pull ceph fixes from Ilya Dryomov:
 "Fixes for an endianness handling bug that prevented mounts on
  big-endian arches, a spammy log message and a couple error paths.

  Also included a MAINTAINERS update"

* tag 'ceph-for-5.7-rc5' of git://github.com/ceph/ceph-client:
  ceph: demote quotarealm lookup warning to a debug message
  MAINTAINERS: remove myself as ceph co-maintainer
  ceph: fix double unlock in handle_cap_export()
  ceph: fix special error code in ceph_try_get_caps()
  ceph: fix endianness bug when handling MDS session feature bits
parents 4334f30e 12ae44a4
...@@ -3936,11 +3936,9 @@ F: arch/powerpc/platforms/cell/ ...@@ -3936,11 +3936,9 @@ F: arch/powerpc/platforms/cell/
CEPH COMMON CODE (LIBCEPH) CEPH COMMON CODE (LIBCEPH)
M: Ilya Dryomov <idryomov@gmail.com> M: Ilya Dryomov <idryomov@gmail.com>
M: Jeff Layton <jlayton@kernel.org> M: Jeff Layton <jlayton@kernel.org>
M: Sage Weil <sage@redhat.com>
L: ceph-devel@vger.kernel.org L: ceph-devel@vger.kernel.org
S: Supported S: Supported
W: http://ceph.com/ W: http://ceph.com/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
T: git git://github.com/ceph/ceph-client.git T: git git://github.com/ceph/ceph-client.git
F: include/linux/ceph/ F: include/linux/ceph/
F: include/linux/crush/ F: include/linux/crush/
...@@ -3948,12 +3946,10 @@ F: net/ceph/ ...@@ -3948,12 +3946,10 @@ F: net/ceph/
CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH) CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH)
M: Jeff Layton <jlayton@kernel.org> M: Jeff Layton <jlayton@kernel.org>
M: Sage Weil <sage@redhat.com>
M: Ilya Dryomov <idryomov@gmail.com> M: Ilya Dryomov <idryomov@gmail.com>
L: ceph-devel@vger.kernel.org L: ceph-devel@vger.kernel.org
S: Supported S: Supported
W: http://ceph.com/ W: http://ceph.com/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
T: git git://github.com/ceph/ceph-client.git T: git git://github.com/ceph/ceph-client.git
F: Documentation/filesystems/ceph.rst F: Documentation/filesystems/ceph.rst
F: fs/ceph/ F: fs/ceph/
...@@ -14098,12 +14094,10 @@ F: drivers/media/radio/radio-tea5777.c ...@@ -14098,12 +14094,10 @@ F: drivers/media/radio/radio-tea5777.c
RADOS BLOCK DEVICE (RBD) RADOS BLOCK DEVICE (RBD)
M: Ilya Dryomov <idryomov@gmail.com> M: Ilya Dryomov <idryomov@gmail.com>
M: Sage Weil <sage@redhat.com>
R: Dongsheng Yang <dongsheng.yang@easystack.cn> R: Dongsheng Yang <dongsheng.yang@easystack.cn>
L: ceph-devel@vger.kernel.org L: ceph-devel@vger.kernel.org
S: Supported S: Supported
W: http://ceph.com/ W: http://ceph.com/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
T: git git://github.com/ceph/ceph-client.git T: git git://github.com/ceph/ceph-client.git
F: Documentation/ABI/testing/sysfs-bus-rbd F: Documentation/ABI/testing/sysfs-bus-rbd
F: drivers/block/rbd.c F: drivers/block/rbd.c
......
...@@ -2749,7 +2749,7 @@ int ceph_try_get_caps(struct inode *inode, int need, int want, ...@@ -2749,7 +2749,7 @@ int ceph_try_get_caps(struct inode *inode, int need, int want,
ret = try_get_cap_refs(inode, need, want, 0, flags, got); ret = try_get_cap_refs(inode, need, want, 0, flags, got);
/* three special error codes */ /* three special error codes */
if (ret == -EAGAIN || ret == -EFBIG || ret == -EAGAIN) if (ret == -EAGAIN || ret == -EFBIG || ret == -ESTALE)
ret = 0; ret = 0;
return ret; return ret;
} }
...@@ -3746,6 +3746,7 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex, ...@@ -3746,6 +3746,7 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex,
WARN_ON(1); WARN_ON(1);
tsession = NULL; tsession = NULL;
target = -1; target = -1;
mutex_lock(&session->s_mutex);
} }
goto retry; goto retry;
......
...@@ -3251,8 +3251,7 @@ static void handle_session(struct ceph_mds_session *session, ...@@ -3251,8 +3251,7 @@ static void handle_session(struct ceph_mds_session *session,
void *end = p + msg->front.iov_len; void *end = p + msg->front.iov_len;
struct ceph_mds_session_head *h; struct ceph_mds_session_head *h;
u32 op; u32 op;
u64 seq; u64 seq, features = 0;
unsigned long features = 0;
int wake = 0; int wake = 0;
bool blacklisted = false; bool blacklisted = false;
...@@ -3271,9 +3270,8 @@ static void handle_session(struct ceph_mds_session *session, ...@@ -3271,9 +3270,8 @@ static void handle_session(struct ceph_mds_session *session,
goto bad; goto bad;
/* version >= 3, feature bits */ /* version >= 3, feature bits */
ceph_decode_32_safe(&p, end, len, bad); ceph_decode_32_safe(&p, end, len, bad);
ceph_decode_need(&p, end, len, bad); ceph_decode_64_safe(&p, end, features, bad);
memcpy(&features, p, min_t(size_t, len, sizeof(features))); p += len - sizeof(features);
p += len;
} }
mutex_lock(&mdsc->mutex); mutex_lock(&mdsc->mutex);
......
...@@ -159,8 +159,8 @@ static struct inode *lookup_quotarealm_inode(struct ceph_mds_client *mdsc, ...@@ -159,8 +159,8 @@ static struct inode *lookup_quotarealm_inode(struct ceph_mds_client *mdsc,
} }
if (IS_ERR(in)) { if (IS_ERR(in)) {
pr_warn("Can't lookup inode %llx (err: %ld)\n", dout("Can't lookup inode %llx (err: %ld)\n",
realm->ino, PTR_ERR(in)); realm->ino, PTR_ERR(in));
qri->timeout = jiffies + msecs_to_jiffies(60 * 1000); /* XXX */ qri->timeout = jiffies + msecs_to_jiffies(60 * 1000); /* XXX */
} else { } else {
qri->timeout = 0; qri->timeout = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment