mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-17 20:54:10 +00:00
Fixes for an overreaching WARN_ON, two error paths and a switch to
kernel_connect() which recently grown protection against someone using BPF to rewrite the address. All but one marked for stable. -----BEGIN PGP SIGNATURE----- iQFHBAABCAAxFiEEydHwtzie9C7TfviiSn/eOAIR84sFAmUpYoQTHGlkcnlvbW92 QGdtYWlsLmNvbQAKCRBKf944AhHziwvmCACK13dkAaupcHyteYPloBgtJLNixR3X 6++nHCOXGtE7cK6n1snobFQgp/d5BqSKAeymyLqDjJOJVqG/5n8FR1gwcuY/Ogdj Aju2Mkt7R/R/V6kvmCbqGSwiOvxZP1gBFkKcluRNQkFNP3boKw4vmJGq29Rabbyr 66NfZSETsR/H4JhAWvUyVmffrvxIx11THnvmrAnprGVKoK72HwOQFx0H4KLD2Hio aN/yiiR15yDS6hL8dfilt+QGO6o+ZWgvRl1GOzqjwISgfeUUYVknMJXrEf+20kHs kX3tWaLWVZsU1FyVFRO5HPYLAREjALXstFO4K1OHPERM7EipWNinIHoS =wyYP -----END PGP SIGNATURE----- Merge tag 'ceph-for-6.6-rc6' of https://github.com/ceph/ceph-client Pull ceph fixes from Ilya Dryomov: "Fixes for an overreaching WARN_ON, two error paths and a switch to kernel_connect() which recently grown protection against someone using BPF to rewrite the address. All but one marked for stable" * tag 'ceph-for-6.6-rc6' of https://github.com/ceph/ceph-client: ceph: fix type promotion bug on 32bit systems libceph: use kernel_connect() ceph: remove unnecessary IS_ERR() check in ceph_fname_to_usr() ceph: fix incorrect revoked caps assert in ceph_fill_file_size()
This commit is contained in:
commit
a1ef447dee
4 changed files with 5 additions and 7 deletions
|
@ -460,7 +460,7 @@ int ceph_fname_to_usr(const struct ceph_fname *fname, struct fscrypt_str *tname,
|
||||||
out:
|
out:
|
||||||
fscrypt_fname_free_buffer(&_tname);
|
fscrypt_fname_free_buffer(&_tname);
|
||||||
out_inode:
|
out_inode:
|
||||||
if ((dir != fname->dir) && !IS_ERR(dir)) {
|
if (dir != fname->dir) {
|
||||||
if ((dir->i_state & I_NEW))
|
if ((dir->i_state & I_NEW))
|
||||||
discard_new_inode(dir);
|
discard_new_inode(dir);
|
||||||
else
|
else
|
||||||
|
|
|
@ -2969,7 +2969,7 @@ static ssize_t __ceph_copy_file_range(struct file *src_file, loff_t src_off,
|
||||||
ret = do_splice_direct(src_file, &src_off, dst_file,
|
ret = do_splice_direct(src_file, &src_off, dst_file,
|
||||||
&dst_off, src_objlen, flags);
|
&dst_off, src_objlen, flags);
|
||||||
/* Abort on short copies or on error */
|
/* Abort on short copies or on error */
|
||||||
if (ret < src_objlen) {
|
if (ret < (long)src_objlen) {
|
||||||
dout("Failed partial copy (%zd)\n", ret);
|
dout("Failed partial copy (%zd)\n", ret);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -769,9 +769,7 @@ int ceph_fill_file_size(struct inode *inode, int issued,
|
||||||
ci->i_truncate_seq = truncate_seq;
|
ci->i_truncate_seq = truncate_seq;
|
||||||
|
|
||||||
/* the MDS should have revoked these caps */
|
/* the MDS should have revoked these caps */
|
||||||
WARN_ON_ONCE(issued & (CEPH_CAP_FILE_EXCL |
|
WARN_ON_ONCE(issued & (CEPH_CAP_FILE_RD |
|
||||||
CEPH_CAP_FILE_RD |
|
|
||||||
CEPH_CAP_FILE_WR |
|
|
||||||
CEPH_CAP_FILE_LAZYIO));
|
CEPH_CAP_FILE_LAZYIO));
|
||||||
/*
|
/*
|
||||||
* If we hold relevant caps, or in the case where we're
|
* If we hold relevant caps, or in the case where we're
|
||||||
|
|
|
@ -459,8 +459,8 @@ int ceph_tcp_connect(struct ceph_connection *con)
|
||||||
set_sock_callbacks(sock, con);
|
set_sock_callbacks(sock, con);
|
||||||
|
|
||||||
con_sock_state_connecting(con);
|
con_sock_state_connecting(con);
|
||||||
ret = sock->ops->connect(sock, (struct sockaddr *)&ss, sizeof(ss),
|
ret = kernel_connect(sock, (struct sockaddr *)&ss, sizeof(ss),
|
||||||
O_NONBLOCK);
|
O_NONBLOCK);
|
||||||
if (ret == -EINPROGRESS) {
|
if (ret == -EINPROGRESS) {
|
||||||
dout("connect %s EINPROGRESS sk_state = %u\n",
|
dout("connect %s EINPROGRESS sk_state = %u\n",
|
||||||
ceph_pr_addr(&con->peer_addr),
|
ceph_pr_addr(&con->peer_addr),
|
||||||
|
|
Loading…
Add table
Reference in a new issue