* [PATCH 1/3] ceph: correct ceph_mds_cap_item field name @ 2024-10-12 23:55 Patrick Donnelly 2024-10-12 23:55 ` [PATCH 2/3] ceph: correct ceph_mds_cap_peer " Patrick Donnelly 2024-10-12 23:55 ` [PATCH 3/3] ceph: improve caps debugging output Patrick Donnelly 0 siblings, 2 replies; 7+ messages in thread From: Patrick Donnelly @ 2024-10-12 23:55 UTC (permalink / raw) To: Xiubo Li, Ilya Dryomov Cc: Patrick Donnelly, Patrick Donnelly, ceph-devel, linux-kernel The issue_seq is sent with bulk cap releases, not the current sequence number. See also ceph.git commit: "include/ceph_fs: correct ceph_mds_cap_item field name". See-also: https://tracker.ceph.com/issues/66704 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com> --- fs/ceph/mds_client.c | 2 +- include/linux/ceph/ceph_fs.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index c4a5fd94bbbb..0be82de8a6da 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -2362,7 +2362,7 @@ static void ceph_send_cap_releases(struct ceph_mds_client *mdsc, item->ino = cpu_to_le64(cap->cap_ino); item->cap_id = cpu_to_le64(cap->cap_id); item->migrate_seq = cpu_to_le32(cap->mseq); - item->seq = cpu_to_le32(cap->issue_seq); + item->issue_seq = cpu_to_le32(cap->issue_seq); msg->front.iov_len += sizeof(*item); ceph_put_cap(mdsc, cap); diff --git a/include/linux/ceph/ceph_fs.h b/include/linux/ceph/ceph_fs.h index ee1d0e5f9789..4ff3ad5e9210 100644 --- a/include/linux/ceph/ceph_fs.h +++ b/include/linux/ceph/ceph_fs.h @@ -822,7 +822,7 @@ struct ceph_mds_cap_release { struct ceph_mds_cap_item { __le64 ino; __le64 cap_id; - __le32 migrate_seq, seq; + __le32 migrate_seq, issue_seq; } __attribute__ ((packed)); #define CEPH_MDS_LEASE_REVOKE 1 /* mds -> client */ base-commit: 75b607fab38d149f232f01eae5e6392b394dd659 -- Patrick Donnelly, Ph.D. He / Him / His Red Hat Partner Engineer IBM, Inc. GPG: 19F28A586F808C2402351B93C3301A3E258DD79D ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] ceph: correct ceph_mds_cap_peer field name 2024-10-12 23:55 [PATCH 1/3] ceph: correct ceph_mds_cap_item field name Patrick Donnelly @ 2024-10-12 23:55 ` Patrick Donnelly 2024-10-12 23:55 ` [PATCH 3/3] ceph: improve caps debugging output Patrick Donnelly 1 sibling, 0 replies; 7+ messages in thread From: Patrick Donnelly @ 2024-10-12 23:55 UTC (permalink / raw) To: Xiubo Li, Ilya Dryomov Cc: Patrick Donnelly, Patrick Donnelly, ceph-devel, linux-kernel See also ceph.git commit: "include/ceph_fs: correct ceph_mds_cap_peer field name". See-also: https://tracker.ceph.com/issues/66704 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com> --- fs/ceph/caps.c | 23 ++++++++++++----------- include/linux/ceph/ceph_fs.h | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index bed34fc11c91..88a674cf27a8 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -4086,17 +4086,17 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex, struct ceph_inode_info *ci = ceph_inode(inode); u64 t_cap_id; unsigned mseq = le32_to_cpu(ex->migrate_seq); - unsigned t_seq, t_mseq; + unsigned t_issue_seq, t_mseq; int target, issued; int mds = session->s_mds; if (ph) { t_cap_id = le64_to_cpu(ph->cap_id); - t_seq = le32_to_cpu(ph->seq); + t_issue_seq = le32_to_cpu(ph->issue_seq); t_mseq = le32_to_cpu(ph->mseq); target = le32_to_cpu(ph->mds); } else { - t_cap_id = t_seq = t_mseq = 0; + t_cap_id = t_issue_seq = t_mseq = 0; target = -1; } @@ -4134,12 +4134,12 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex, if (tcap) { /* already have caps from the target */ if (tcap->cap_id == t_cap_id && - ceph_seq_cmp(tcap->seq, t_seq) < 0) { + ceph_seq_cmp(tcap->seq, t_issue_seq) < 0) { doutc(cl, " updating import cap %p mds%d\n", tcap, target); tcap->cap_id = t_cap_id; - tcap->seq = t_seq - 1; - tcap->issue_seq = t_seq - 1; + tcap->seq = t_issue_seq - 1; + tcap->issue_seq = t_issue_seq - 1; tcap->issued |= issued; tcap->implemented |= issued; if (cap == ci->i_auth_cap) { @@ -4154,7 +4154,7 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex, int flag = (cap == ci->i_auth_cap) ? CEPH_CAP_FLAG_AUTH : 0; tcap = new_cap; ceph_add_cap(inode, tsession, t_cap_id, issued, 0, - t_seq - 1, t_mseq, (u64)-1, flag, &new_cap); + t_issue_seq - 1, t_mseq, (u64)-1, flag, &new_cap); if (!list_empty(&ci->i_cap_flush_list) && ci->i_auth_cap == tcap) { @@ -4268,14 +4268,14 @@ static void handle_cap_import(struct ceph_mds_client *mdsc, doutc(cl, " remove export cap %p mds%d flags %d\n", ocap, peer, ph->flags); if ((ph->flags & CEPH_CAP_FLAG_AUTH) && - (ocap->seq != le32_to_cpu(ph->seq) || + (ocap->seq != le32_to_cpu(ph->issue_seq) || ocap->mseq != le32_to_cpu(ph->mseq))) { pr_err_ratelimited_client(cl, "mismatched seq/mseq: " "%p %llx.%llx mds%d seq %d mseq %d" " importer mds%d has peer seq %d mseq %d\n", inode, ceph_vinop(inode), peer, ocap->seq, ocap->mseq, mds, - le32_to_cpu(ph->seq), + le32_to_cpu(ph->issue_seq), le32_to_cpu(ph->mseq)); } ceph_remove_cap(mdsc, ocap, (ph->flags & CEPH_CAP_FLAG_RELEASE)); @@ -4350,7 +4350,7 @@ void ceph_handle_caps(struct ceph_mds_session *session, struct ceph_snap_realm *realm = NULL; int op; int msg_version = le16_to_cpu(msg->hdr.version); - u32 seq, mseq; + u32 seq, mseq, issue_seq; struct ceph_vino vino; void *snaptrace; size_t snaptrace_len; @@ -4375,6 +4375,7 @@ void ceph_handle_caps(struct ceph_mds_session *session, vino.snap = CEPH_NOSNAP; seq = le32_to_cpu(h->seq); mseq = le32_to_cpu(h->migrate_seq); + issue_seq = le32_to_cpu(h->issue_seq); snaptrace = h + 1; snaptrace_len = le32_to_cpu(h->snap_trace_len); @@ -4598,7 +4599,7 @@ void ceph_handle_caps(struct ceph_mds_session *session, cap->cap_id = le64_to_cpu(h->cap_id); cap->mseq = mseq; cap->seq = seq; - cap->issue_seq = seq; + cap->issue_seq = issue_seq; spin_lock(&session->s_cap_lock); __ceph_queue_cap_release(session, cap); spin_unlock(&session->s_cap_lock); diff --git a/include/linux/ceph/ceph_fs.h b/include/linux/ceph/ceph_fs.h index 4ff3ad5e9210..2d7d86f0290d 100644 --- a/include/linux/ceph/ceph_fs.h +++ b/include/linux/ceph/ceph_fs.h @@ -808,7 +808,7 @@ struct ceph_mds_caps { struct ceph_mds_cap_peer { __le64 cap_id; - __le32 seq; + __le32 issue_seq; __le32 mseq; __le32 mds; __u8 flags; -- Patrick Donnelly, Ph.D. He / Him / His Red Hat Partner Engineer IBM, Inc. GPG: 19F28A586F808C2402351B93C3301A3E258DD79D ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] ceph: improve caps debugging output 2024-10-12 23:55 [PATCH 1/3] ceph: correct ceph_mds_cap_item field name Patrick Donnelly 2024-10-12 23:55 ` [PATCH 2/3] ceph: correct ceph_mds_cap_peer " Patrick Donnelly @ 2024-10-12 23:55 ` Patrick Donnelly 1 sibling, 0 replies; 7+ messages in thread From: Patrick Donnelly @ 2024-10-12 23:55 UTC (permalink / raw) To: Xiubo Li, Ilya Dryomov; +Cc: Patrick Donnelly, ceph-devel, linux-kernel From: Patrick Donnelly <pdonnell@redhat.com> This improves uniformity and exposes important sequence numbers. Now looks like: <7>[ 73.749563] ceph: caps.c:4465 : [c9653bca-110b-4f70-9f84-5a195b205e9a 15290] caps mds2 op export ino 20000000000.fffffffffffffffe inode 0000000008d2e5ea seq 0 iseq 0 mseq 0 ... <7>[ 73.749574] ceph: caps.c:4102 : [c9653bca-110b-4f70-9f84-5a195b205e9a 15290] cap 20000000000.fffffffffffffffe export to peer 1 piseq 1 pmseq 1 ... <7>[ 73.749645] ceph: caps.c:4465 : [c9653bca-110b-4f70-9f84-5a195b205e9a 15290] caps mds1 op import ino 20000000000.fffffffffffffffe inode 0000000008d2e5ea seq 1 iseq 1 mseq 1 ... <7>[ 73.749681] ceph: caps.c:4244 : [c9653bca-110b-4f70-9f84-5a195b205e9a 15290] cap 20000000000.fffffffffffffffe import from peer 2 piseq 686 pmseq 0 ... <7>[ 248.645596] ceph: caps.c:4465 : [c9653bca-110b-4f70-9f84-5a195b205e9a 15290] caps mds1 op revoke ino 20000000000.fffffffffffffffe inode 0000000008d2e5ea seq 2538 iseq 1 mseq 1 See also: "mds: add issue_seq to all cap messages" in ceph.git See-also: https://tracker.ceph.com/issues/66704 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com> --- fs/ceph/caps.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 88a674cf27a8..74ba310dfcc7 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -4085,8 +4085,7 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex, struct ceph_cap *cap, *tcap, *new_cap = NULL; struct ceph_inode_info *ci = ceph_inode(inode); u64 t_cap_id; - unsigned mseq = le32_to_cpu(ex->migrate_seq); - unsigned t_issue_seq, t_mseq; + u32 t_issue_seq, t_mseq; int target, issued; int mds = session->s_mds; @@ -4100,8 +4099,8 @@ static void handle_cap_export(struct inode *inode, struct ceph_mds_caps *ex, target = -1; } - doutc(cl, "%p %llx.%llx ci %p mds%d mseq %d target %d\n", - inode, ceph_vinop(inode), ci, mds, mseq, target); + doutc(cl, " cap %llx.%llx export to peer %d piseq %u pmseq %u\n", + ceph_vinop(inode), target, t_issue_seq, t_mseq); retry: down_read(&mdsc->snap_rwsem); spin_lock(&ci->i_ceph_lock); @@ -4228,18 +4227,22 @@ static void handle_cap_import(struct ceph_mds_client *mdsc, u64 realmino = le64_to_cpu(im->realm); u64 cap_id = le64_to_cpu(im->cap_id); u64 p_cap_id; + u32 piseq = 0; + u32 pmseq = 0; int peer; if (ph) { p_cap_id = le64_to_cpu(ph->cap_id); peer = le32_to_cpu(ph->mds); + piseq = le32_to_cpu(ph->issue_seq); + pmseq = le32_to_cpu(ph->mseq); } else { p_cap_id = 0; peer = -1; } - doutc(cl, "%p %llx.%llx ci %p mds%d mseq %d peer %d\n", - inode, ceph_vinop(inode), ci, mds, mseq, peer); + doutc(cl, " cap %llx.%llx import from peer %d piseq %u pmseq %u\n", + ceph_vinop(inode), peer, piseq, pmseq); retry: cap = __get_cap_for_mds(ci, mds); if (!cap) { @@ -4268,15 +4271,13 @@ static void handle_cap_import(struct ceph_mds_client *mdsc, doutc(cl, " remove export cap %p mds%d flags %d\n", ocap, peer, ph->flags); if ((ph->flags & CEPH_CAP_FLAG_AUTH) && - (ocap->seq != le32_to_cpu(ph->issue_seq) || - ocap->mseq != le32_to_cpu(ph->mseq))) { + (ocap->seq != piseq || + ocap->mseq != pmseq)) { pr_err_ratelimited_client(cl, "mismatched seq/mseq: " "%p %llx.%llx mds%d seq %d mseq %d" " importer mds%d has peer seq %d mseq %d\n", inode, ceph_vinop(inode), peer, - ocap->seq, ocap->mseq, mds, - le32_to_cpu(ph->issue_seq), - le32_to_cpu(ph->mseq)); + ocap->seq, ocap->mseq, mds, piseq, pmseq); } ceph_remove_cap(mdsc, ocap, (ph->flags & CEPH_CAP_FLAG_RELEASE)); } @@ -4360,8 +4361,6 @@ void ceph_handle_caps(struct ceph_mds_session *session, bool close_sessions = false; bool do_cap_release = false; - doutc(cl, "from mds%d\n", session->s_mds); - if (!ceph_inc_mds_stopping_blocker(mdsc, session)) return; @@ -4463,12 +4462,11 @@ void ceph_handle_caps(struct ceph_mds_session *session, /* lookup ino */ inode = ceph_find_inode(mdsc->fsc->sb, vino); - doutc(cl, " op %s ino %llx.%llx inode %p\n", ceph_cap_op_name(op), - vino.ino, vino.snap, inode); + doutc(cl, " caps mds%d op %s ino %llx.%llx inode %p seq %u iseq %u mseq %u\n", + session->s_mds, ceph_cap_op_name(op), vino.ino, vino.snap, inode, + seq, issue_seq, mseq); mutex_lock(&session->s_mutex); - doutc(cl, " mds%d seq %lld cap seq %u\n", session->s_mds, - session->s_seq, (unsigned)seq); if (!inode) { doutc(cl, " i don't have ino %llx\n", vino.ino); -- Patrick Donnelly, Ph.D. He / Him / His Red Hat Partner Engineer IBM, Inc. GPG: 19F28A586F808C2402351B93C3301A3E258DD79D ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 1/3] ceph: correct ceph_mds_cap_item field name @ 2024-10-13 1:16 Patrick Donnelly 2024-10-14 0:57 ` Xiubo Li 0 siblings, 1 reply; 7+ messages in thread From: Patrick Donnelly @ 2024-10-13 1:16 UTC (permalink / raw) To: Xiubo Li, Ilya Dryomov Cc: Patrick Donnelly, Patrick Donnelly, ceph-devel, linux-kernel The issue_seq is sent with bulk cap releases, not the current sequence number. See also ceph.git commit: "include/ceph_fs: correct ceph_mds_cap_item field name". See-also: https://tracker.ceph.com/issues/66704 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com> --- fs/ceph/mds_client.c | 2 +- include/linux/ceph/ceph_fs.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index c4a5fd94bbbb..0be82de8a6da 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -2362,7 +2362,7 @@ static void ceph_send_cap_releases(struct ceph_mds_client *mdsc, item->ino = cpu_to_le64(cap->cap_ino); item->cap_id = cpu_to_le64(cap->cap_id); item->migrate_seq = cpu_to_le32(cap->mseq); - item->seq = cpu_to_le32(cap->issue_seq); + item->issue_seq = cpu_to_le32(cap->issue_seq); msg->front.iov_len += sizeof(*item); ceph_put_cap(mdsc, cap); diff --git a/include/linux/ceph/ceph_fs.h b/include/linux/ceph/ceph_fs.h index ee1d0e5f9789..4ff3ad5e9210 100644 --- a/include/linux/ceph/ceph_fs.h +++ b/include/linux/ceph/ceph_fs.h @@ -822,7 +822,7 @@ struct ceph_mds_cap_release { struct ceph_mds_cap_item { __le64 ino; __le64 cap_id; - __le32 migrate_seq, seq; + __le32 migrate_seq, issue_seq; } __attribute__ ((packed)); #define CEPH_MDS_LEASE_REVOKE 1 /* mds -> client */ base-commit: 75b607fab38d149f232f01eae5e6392b394dd659 -- Patrick Donnelly, Ph.D. He / Him / His Red Hat Partner Engineer IBM, Inc. GPG: 19F28A586F808C2402351B93C3301A3E258DD79D ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] ceph: correct ceph_mds_cap_item field name 2024-10-13 1:16 [PATCH 1/3] ceph: correct ceph_mds_cap_item field name Patrick Donnelly @ 2024-10-14 0:57 ` Xiubo Li 2024-10-21 13:51 ` Patrick Donnelly 0 siblings, 1 reply; 7+ messages in thread From: Xiubo Li @ 2024-10-14 0:57 UTC (permalink / raw) To: Patrick Donnelly, Ilya Dryomov; +Cc: Patrick Donnelly, ceph-devel, linux-kernel Hi Patrick, Thanks for your patches. BTW, I think this should be the V2, right ? Then could you explain what's the difference between V1 and V2 ?Usually we will add this in the cover-letter. And also we will add a version tag from the second version of the patch series, which is something like: [PATCH v2 0/3] [PATCH v2 1/3] ... [PATCH v2 3/3] At the same time please add a cover-letter if there are more than 1 patch in the series, which will be the '[PATCH 0/3]', and you can generate it by using the '--cover-letter' option: $ git patch-format -3 --cover-letter Please note that in the cover-letter patch you need to add the title, a summary about this series and certainly a comment about the changes from the last version manually. One example about this please see https://lore.kernel.org/all/20240418142019.133191-1-xiubli@redhat.com/. If there is only one patch in the series, then the cover-letter is not a must and you can just do it likes: https://patchwork.kernel.org/project/ceph-devel/patch/20240314073915.844541-1-xiubli@redhat.com/, Thanks - Xiubo On 10/13/24 09:16, Patrick Donnelly wrote: > The issue_seq is sent with bulk cap releases, not the current sequence number. > > See also ceph.git commit: "include/ceph_fs: correct ceph_mds_cap_item field name". > > See-also: https://tracker.ceph.com/issues/66704 > Signed-off-by: Patrick Donnelly <pdonnell@redhat.com> > --- > fs/ceph/mds_client.c | 2 +- > include/linux/ceph/ceph_fs.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c > index c4a5fd94bbbb..0be82de8a6da 100644 > --- a/fs/ceph/mds_client.c > +++ b/fs/ceph/mds_client.c > @@ -2362,7 +2362,7 @@ static void ceph_send_cap_releases(struct ceph_mds_client *mdsc, > item->ino = cpu_to_le64(cap->cap_ino); > item->cap_id = cpu_to_le64(cap->cap_id); > item->migrate_seq = cpu_to_le32(cap->mseq); > - item->seq = cpu_to_le32(cap->issue_seq); > + item->issue_seq = cpu_to_le32(cap->issue_seq); > msg->front.iov_len += sizeof(*item); > > ceph_put_cap(mdsc, cap); > diff --git a/include/linux/ceph/ceph_fs.h b/include/linux/ceph/ceph_fs.h > index ee1d0e5f9789..4ff3ad5e9210 100644 > --- a/include/linux/ceph/ceph_fs.h > +++ b/include/linux/ceph/ceph_fs.h > @@ -822,7 +822,7 @@ struct ceph_mds_cap_release { > struct ceph_mds_cap_item { > __le64 ino; > __le64 cap_id; > - __le32 migrate_seq, seq; > + __le32 migrate_seq, issue_seq; > } __attribute__ ((packed)); > > #define CEPH_MDS_LEASE_REVOKE 1 /* mds -> client */ > > base-commit: 75b607fab38d149f232f01eae5e6392b394dd659 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] ceph: correct ceph_mds_cap_item field name 2024-10-14 0:57 ` Xiubo Li @ 2024-10-21 13:51 ` Patrick Donnelly 0 siblings, 0 replies; 7+ messages in thread From: Patrick Donnelly @ 2024-10-21 13:51 UTC (permalink / raw) To: Xiubo Li; +Cc: Patrick Donnelly, Ilya Dryomov, ceph-devel, linux-kernel Hi Xiubo, On Sun, Oct 13, 2024 at 8:57 PM Xiubo Li <xiubli@redhat.com> wrote: > > Hi Patrick, > > Thanks for your patches. > > BTW, I think this should be the V2, right ? > > Then could you explain what's the difference between V1 and V2 ?Usually > we will add this in the cover-letter. There's no difference. These patches accidentally got picked up with the other set I sent out (I already sent a new series for that set: "ceph: use entity name from new device string"). These are the three patches: https://lore.kernel.org/ceph-devel/20241012235529.520289-1-batrick@batbytes.com/T/#r691410e455d5b10da617880b91a6c45703ff764e I can resend in a new series if you like. > And also we will add a version tag from the second version of the patch > series, which is something like: > > [PATCH v2 0/3] > [PATCH v2 1/3] > ... > [PATCH v2 3/3] > > At the same time please add a cover-letter if there are more than 1 > patch in the series, which will be the '[PATCH 0/3]', and you can > generate it by using the '--cover-letter' option: > > $ git patch-format -3 --cover-letter > > Please note that in the cover-letter patch you need to add the title, a > summary about this series and certainly a comment about the changes from > the last version manually. One example about this please see > https://lore.kernel.org/all/20240418142019.133191-1-xiubli@redhat.com/. > > If there is only one patch in the series, then the cover-letter is not a > must and you can just do it likes: > https://patchwork.kernel.org/project/ceph-devel/patch/20240314073915.844541-1-xiubli@redhat.com/, > > Thanks > > - Xiubo > > > On 10/13/24 09:16, Patrick Donnelly wrote: > > The issue_seq is sent with bulk cap releases, not the current sequence number. > > > > See also ceph.git commit: "include/ceph_fs: correct ceph_mds_cap_item field name". > > > > See-also: https://tracker.ceph.com/issues/66704 > > Signed-off-by: Patrick Donnelly <pdonnell@redhat.com> > > --- > > fs/ceph/mds_client.c | 2 +- > > include/linux/ceph/ceph_fs.h | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c > > index c4a5fd94bbbb..0be82de8a6da 100644 > > --- a/fs/ceph/mds_client.c > > +++ b/fs/ceph/mds_client.c > > @@ -2362,7 +2362,7 @@ static void ceph_send_cap_releases(struct ceph_mds_client *mdsc, > > item->ino = cpu_to_le64(cap->cap_ino); > > item->cap_id = cpu_to_le64(cap->cap_id); > > item->migrate_seq = cpu_to_le32(cap->mseq); > > - item->seq = cpu_to_le32(cap->issue_seq); > > + item->issue_seq = cpu_to_le32(cap->issue_seq); > > msg->front.iov_len += sizeof(*item); > > > > ceph_put_cap(mdsc, cap); > > diff --git a/include/linux/ceph/ceph_fs.h b/include/linux/ceph/ceph_fs.h > > index ee1d0e5f9789..4ff3ad5e9210 100644 > > --- a/include/linux/ceph/ceph_fs.h > > +++ b/include/linux/ceph/ceph_fs.h > > @@ -822,7 +822,7 @@ struct ceph_mds_cap_release { > > struct ceph_mds_cap_item { > > __le64 ino; > > __le64 cap_id; > > - __le32 migrate_seq, seq; > > + __le32 migrate_seq, issue_seq; > > } __attribute__ ((packed)); > > > > #define CEPH_MDS_LEASE_REVOKE 1 /* mds -> client */ > > > > base-commit: 75b607fab38d149f232f01eae5e6392b394dd659 > -- Patrick Donnelly, Ph.D. He / Him / His Red Hat Partner Engineer IBM, Inc. GPG: 19F28A586F808C2402351B93C3301A3E258DD79D ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 0/3] ceph: use issue_seq for struct field names @ 2024-10-22 14:48 Patrick Donnelly 2024-10-22 14:48 ` [PATCH 1/3] ceph: correct ceph_mds_cap_item field name Patrick Donnelly 0 siblings, 1 reply; 7+ messages in thread From: Patrick Donnelly @ 2024-10-22 14:48 UTC (permalink / raw) To: Ilya Dryomov, Xiubo Li Cc: Patrick Donnelly, open list:CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH), open list From: Patrick Donnelly <pdonnell@redhat.com> Respinning this because the last series accidentally included patches from another set. Patrick Donnelly (3): ceph: correct ceph_mds_cap_item field name ceph: correct ceph_mds_cap_peer field name ceph: improve caps debugging output fs/ceph/caps.c | 49 ++++++++++++++++++------------------ fs/ceph/mds_client.c | 2 +- include/linux/ceph/ceph_fs.h | 4 +-- 3 files changed, 27 insertions(+), 28 deletions(-) base-commit: c2ee9f594da826bea183ed14f2cc029c719bf4da -- Patrick Donnelly, Ph.D. He / Him / His Red Hat Partner Engineer IBM, Inc. GPG: 19F28A586F808C2402351B93C3301A3E258DD79D ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] ceph: correct ceph_mds_cap_item field name 2024-10-22 14:48 [PATCH 0/3] ceph: use issue_seq for struct field names Patrick Donnelly @ 2024-10-22 14:48 ` Patrick Donnelly 0 siblings, 0 replies; 7+ messages in thread From: Patrick Donnelly @ 2024-10-22 14:48 UTC (permalink / raw) To: Xiubo Li, Ilya Dryomov Cc: Patrick Donnelly, Patrick Donnelly, open list:CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH), open list The issue_seq is sent with bulk cap releases, not the current sequence number. See also ceph.git commit: "include/ceph_fs: correct ceph_mds_cap_item field name". See-also: https://tracker.ceph.com/issues/66704 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com> --- fs/ceph/mds_client.c | 2 +- include/linux/ceph/ceph_fs.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index c4a5fd94bbbb..0be82de8a6da 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -2362,7 +2362,7 @@ static void ceph_send_cap_releases(struct ceph_mds_client *mdsc, item->ino = cpu_to_le64(cap->cap_ino); item->cap_id = cpu_to_le64(cap->cap_id); item->migrate_seq = cpu_to_le32(cap->mseq); - item->seq = cpu_to_le32(cap->issue_seq); + item->issue_seq = cpu_to_le32(cap->issue_seq); msg->front.iov_len += sizeof(*item); ceph_put_cap(mdsc, cap); diff --git a/include/linux/ceph/ceph_fs.h b/include/linux/ceph/ceph_fs.h index ee1d0e5f9789..4ff3ad5e9210 100644 --- a/include/linux/ceph/ceph_fs.h +++ b/include/linux/ceph/ceph_fs.h @@ -822,7 +822,7 @@ struct ceph_mds_cap_release { struct ceph_mds_cap_item { __le64 ino; __le64 cap_id; - __le32 migrate_seq, seq; + __le32 migrate_seq, issue_seq; } __attribute__ ((packed)); #define CEPH_MDS_LEASE_REVOKE 1 /* mds -> client */ -- Patrick Donnelly, Ph.D. He / Him / His Red Hat Partner Engineer IBM, Inc. GPG: 19F28A586F808C2402351B93C3301A3E258DD79D ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-10-22 14:49 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-10-12 23:55 [PATCH 1/3] ceph: correct ceph_mds_cap_item field name Patrick Donnelly 2024-10-12 23:55 ` [PATCH 2/3] ceph: correct ceph_mds_cap_peer " Patrick Donnelly 2024-10-12 23:55 ` [PATCH 3/3] ceph: improve caps debugging output Patrick Donnelly -- strict thread matches above, loose matches on Subject: below -- 2024-10-13 1:16 [PATCH 1/3] ceph: correct ceph_mds_cap_item field name Patrick Donnelly 2024-10-14 0:57 ` Xiubo Li 2024-10-21 13:51 ` Patrick Donnelly 2024-10-22 14:48 [PATCH 0/3] ceph: use issue_seq for struct field names Patrick Donnelly 2024-10-22 14:48 ` [PATCH 1/3] ceph: correct ceph_mds_cap_item field name Patrick Donnelly
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.