That is only a five line change (changing from cifs_destroy_mids, cifs_init_mids to "destroy_mids" and "init_mids") so I am fine with that - probably a tiny add on patch is simplest. On Thu, Aug 4, 2022 at 11:46 AM Enzo Matsumiya <ematsumiya@xxxxxxx> wrote: > > On 08/04, Steve French wrote: > >How about simple change to this to remove "cifs" (since not smb1 > >specific) and call it something like: > > "release_mid_q_entry" or "mid_q_entry_release" ? > > > >could also change AllocMidQEntry to something similar in the same > >patch (it is trivial, > >only used in 3 places) to be more consistent, easier to read: > > "alloc_mid_q_entry" (or "mid_q_entry_alloc") > > Could go a bit further and also remove "cifs_" from > cifs_{init,destroy}_mids() in cifsfs.c, leaving the generic mid > functions all with the same style. > > Let me know if I should do that too. > > >On Tue, Aug 2, 2022 at 4:11 PM Enzo Matsumiya <ematsumiya@xxxxxxx> wrote: > >> > >> DeleteMidQEntry() was just a proxy for cifs_mid_q_entry_release(). > >> > >> Remove DeleteMidQEntry(), rename cifs_mid_q_entry_release() to > >> cifs_release_mid(). > >> > >> Also rename the kref_put() callback _cifs_mid_q_entry_release to > >> __cifs_release_mid. > >> > >> Update callers to cifs_mid_q_entry_release and DeleteMidQEntry to use > >> cifs_release_mid. > >> > >> Signed-off-by: Enzo Matsumiya <ematsumiya@xxxxxxx> > >> --- > >> fs/cifs/cifsproto.h | 3 +-- > >> fs/cifs/cifssmb.c | 6 +++--- > >> fs/cifs/connect.c | 8 ++++---- > >> fs/cifs/smb2ops.c | 2 +- > >> fs/cifs/smb2pdu.c | 6 +++--- > >> fs/cifs/smb2transport.c | 2 +- > >> fs/cifs/transport.c | 25 ++++++++++--------------- > >> 7 files changed, 23 insertions(+), 29 deletions(-) > >> > >> diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h > >> index de167e3af015..853ea4c8d88e 100644 > >> --- a/fs/cifs/cifsproto.h > >> +++ b/fs/cifs/cifsproto.h > >> @@ -81,9 +81,8 @@ extern char *cifs_compose_mount_options(const char *sb_mountdata, > >> /* extern void renew_parental_timestamps(struct dentry *direntry);*/ > >> extern struct mid_q_entry *AllocMidQEntry(const struct smb_hdr *smb_buffer, > >> struct TCP_Server_Info *server); > >> -extern void DeleteMidQEntry(struct mid_q_entry *midEntry); > >> extern void cifs_delete_mid(struct mid_q_entry *mid); > >> -extern void cifs_mid_q_entry_release(struct mid_q_entry *midEntry); > >> +extern void cifs_release_mid(struct mid_q_entry *mid); > >> extern void cifs_wake_up_task(struct mid_q_entry *mid); > >> extern int cifs_handle_standard(struct TCP_Server_Info *server, > >> struct mid_q_entry *mid); > >> diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c > >> index 26b9d2438228..f0d72575e3c0 100644 > >> --- a/fs/cifs/cifssmb.c > >> +++ b/fs/cifs/cifssmb.c > >> @@ -591,7 +591,7 @@ cifs_echo_callback(struct mid_q_entry *mid) > >> struct TCP_Server_Info *server = mid->callback_data; > >> struct cifs_credits credits = { .value = 1, .instance = 0 }; > >> > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> add_credits(server, &credits, CIFS_ECHO_OP); > >> } > >> > >> @@ -1336,7 +1336,7 @@ cifs_readv_callback(struct mid_q_entry *mid) > >> } > >> > >> queue_work(cifsiod_wq, &rdata->work); > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> add_credits(server, &credits, 0); > >> } > >> > >> @@ -1684,7 +1684,7 @@ cifs_writev_callback(struct mid_q_entry *mid) > >> } > >> > >> queue_work(cifsiod_wq, &wdata->work); > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> add_credits(tcon->ses->server, &credits, 0); > >> } > >> > >> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c > >> index abb65dd7471f..eb7e75deb9d2 100644 > >> --- a/fs/cifs/connect.c > >> +++ b/fs/cifs/connect.c > >> @@ -334,7 +334,7 @@ cifs_abort_connection(struct TCP_Server_Info *server) > >> list_for_each_entry_safe(mid, nmid, &retry_list, qhead) { > >> list_del_init(&mid->qhead); > >> mid->callback(mid); > >> - cifs_mid_q_entry_release(mid); > >> + cifs_release_mid(mid); > >> } > >> > >> if (cifs_rdma_enabled(server)) { > >> @@ -1007,7 +1007,7 @@ static void clean_demultiplex_info(struct TCP_Server_Info *server) > >> cifs_dbg(FYI, "Callback mid %llu\n", mid_entry->mid); > >> list_del_init(&mid_entry->qhead); > >> mid_entry->callback(mid_entry); > >> - cifs_mid_q_entry_release(mid_entry); > >> + cifs_release_mid(mid_entry); > >> } > >> /* 1/8th of sec is more than enough time for them to exit */ > >> msleep(125); > >> @@ -1246,7 +1246,7 @@ cifs_demultiplex_thread(void *p) > >> if (length < 0) { > >> for (i = 0; i < num_mids; i++) > >> if (mids[i]) > >> - cifs_mid_q_entry_release(mids[i]); > >> + cifs_release_mid(mids[i]); > >> continue; > >> } > >> > >> @@ -1273,7 +1273,7 @@ cifs_demultiplex_thread(void *p) > >> if (!mids[i]->multiRsp || mids[i]->multiEnd) > >> mids[i]->callback(mids[i]); > >> > >> - cifs_mid_q_entry_release(mids[i]); > >> + cifs_release_mid(mids[i]); > >> } else if (server->ops->is_oplock_break && > >> server->ops->is_oplock_break(bufs[i], > >> server)) { > >> diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c > >> index 82dd2e973753..ad3b13283717 100644 > >> --- a/fs/cifs/smb2ops.c > >> +++ b/fs/cifs/smb2ops.c > >> @@ -5099,7 +5099,7 @@ static void smb2_decrypt_offload(struct work_struct *work) > >> spin_unlock(&dw->server->srv_lock); > >> } > >> } > >> - cifs_mid_q_entry_release(mid); > >> + cifs_release_mid(mid); > >> } > >> > >> free_pages: > >> diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c > >> index 131bec79d6fd..a24e05586d5c 100644 > >> --- a/fs/cifs/smb2pdu.c > >> +++ b/fs/cifs/smb2pdu.c > >> @@ -3776,7 +3776,7 @@ smb2_echo_callback(struct mid_q_entry *mid) > >> credits.instance = server->reconnect_instance; > >> } > >> > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> add_credits(server, &credits, CIFS_ECHO_OP); > >> } > >> > >> @@ -4201,7 +4201,7 @@ smb2_readv_callback(struct mid_q_entry *mid) > >> rdata->offset, rdata->got_bytes); > >> > >> queue_work(cifsiod_wq, &rdata->work); > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> add_credits(server, &credits, 0); > >> } > >> > >> @@ -4440,7 +4440,7 @@ smb2_writev_callback(struct mid_q_entry *mid) > >> wdata->offset, wdata->bytes); > >> > >> queue_work(cifsiod_wq, &wdata->work); > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> add_credits(server, &credits, 0); > >> } > >> > >> diff --git a/fs/cifs/smb2transport.c b/fs/cifs/smb2transport.c > >> index f64922f340b3..f3068786a199 100644 > >> --- a/fs/cifs/smb2transport.c > >> +++ b/fs/cifs/smb2transport.c > >> @@ -890,7 +890,7 @@ smb2_setup_async_request(struct TCP_Server_Info *server, struct smb_rqst *rqst) > >> rc = smb2_sign_rqst(rqst, server); > >> if (rc) { > >> revert_current_mid_from_hdr(server, shdr); > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> return ERR_PTR(rc); > >> } > >> > >> diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c > >> index 914a7aaf9fa7..24caf1fb7213 100644 > >> --- a/fs/cifs/transport.c > >> +++ b/fs/cifs/transport.c > >> @@ -74,7 +74,7 @@ AllocMidQEntry(const struct smb_hdr *smb_buffer, struct TCP_Server_Info *server) > >> return temp; > >> } > >> > >> -static void _cifs_mid_q_entry_release(struct kref *refcount) > >> +static void __cifs_release_mid(struct kref *refcount) > >> { > >> struct mid_q_entry *midEntry = > >> container_of(refcount, struct mid_q_entry, refcount); > >> @@ -153,20 +153,15 @@ static void _cifs_mid_q_entry_release(struct kref *refcount) > >> mempool_free(midEntry, cifs_mid_poolp); > >> } > >> > >> -void cifs_mid_q_entry_release(struct mid_q_entry *midEntry) > >> +void cifs_release_mid(struct mid_q_entry *mid) > >> { > >> - struct TCP_Server_Info *server = midEntry->server; > >> + struct TCP_Server_Info *server = mid->server; > >> > >> spin_lock(&server->mid_lock); > >> - kref_put(&midEntry->refcount, _cifs_mid_q_entry_release); > >> + kref_put(&mid->refcount, __cifs_release_mid); > >> spin_unlock(&server->mid_lock); > >> } > >> > >> -void DeleteMidQEntry(struct mid_q_entry *midEntry) > >> -{ > >> - cifs_mid_q_entry_release(midEntry); > >> -} > >> - > >> void > >> cifs_delete_mid(struct mid_q_entry *mid) > >> { > >> @@ -177,7 +172,7 @@ cifs_delete_mid(struct mid_q_entry *mid) > >> } > >> spin_unlock(&mid->server->mid_lock); > >> > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> } > >> > >> /* > >> @@ -791,7 +786,7 @@ cifs_setup_async_request(struct TCP_Server_Info *server, struct smb_rqst *rqst) > >> > >> rc = cifs_sign_rqst(rqst, server, &mid->sequence_number); > >> if (rc) { > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> return ERR_PTR(rc); > >> } > >> > >> @@ -940,7 +935,7 @@ cifs_sync_mid_result(struct mid_q_entry *mid, struct TCP_Server_Info *server) > >> } > >> spin_unlock(&server->mid_lock); > >> > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> return rc; > >> } > >> > >> @@ -1029,7 +1024,7 @@ static void > >> cifs_cancelled_callback(struct mid_q_entry *mid) > >> { > >> cifs_compound_callback(mid); > >> - DeleteMidQEntry(mid); > >> + cifs_release_mid(mid); > >> } > >> > >> /* > >> @@ -1425,7 +1420,7 @@ SendReceive(const unsigned int xid, struct cifs_ses *ses, > >> spin_lock(&server->mid_lock); > >> if (midQ->mid_state == MID_REQUEST_SUBMITTED) { > >> /* no longer considered to be "in-flight" */ > >> - midQ->callback = DeleteMidQEntry; > >> + midQ->callback = cifs_release_mid; > >> spin_unlock(&server->mid_lock); > >> add_credits(server, &credits, 0); > >> return rc; > >> @@ -1606,7 +1601,7 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifs_tcon *tcon, > >> spin_lock(&server->mid_lock); > >> if (midQ->mid_state == MID_REQUEST_SUBMITTED) { > >> /* no longer considered to be "in-flight" */ > >> - midQ->callback = DeleteMidQEntry; > >> + midQ->callback = cifs_release_mid; > >> spin_unlock(&server->mid_lock); > >> return rc; > >> } > >> -- > >> 2.35.3 > >> > > > > > >-- > >Thanks, > > > >Steve -- Thanks, Steve