Loading fs/nfs/nfs4proc.c +22 −37 Original line number Diff line number Diff line Loading @@ -5021,23 +5021,6 @@ static int nfs4_reset_slot_table(struct nfs4_slot_table *tbl, u32 max_reqs, return ret; } /* * Reset the forechannel and backchannel slot tables */ static int nfs4_reset_slot_tables(struct nfs4_session *session) { int status; status = nfs4_reset_slot_table(&session->fc_slot_table, session->fc_attrs.max_reqs, 1); if (status) return status; status = nfs4_reset_slot_table(&session->bc_slot_table, session->bc_attrs.max_reqs, 0); return status; } /* Destroy the slot table */ static void nfs4_destroy_slot_tables(struct nfs4_session *session) { Loading Loading @@ -5083,29 +5066,35 @@ static int nfs4_init_slot_table(struct nfs4_slot_table *tbl, } /* * Initialize the forechannel and backchannel tables * Initialize or reset the forechannel and backchannel tables */ static int nfs4_init_slot_tables(struct nfs4_session *session) static int nfs4_setup_session_slot_tables(struct nfs4_session *ses) { struct nfs4_slot_table *tbl; int status = 0; int status; tbl = &session->fc_slot_table; dprintk("--> %s\n", __func__); /* Fore channel */ tbl = &ses->fc_slot_table; if (tbl->slots == NULL) { status = nfs4_init_slot_table(tbl, session->fc_attrs.max_reqs, 1); status = nfs4_init_slot_table(tbl, ses->fc_attrs.max_reqs, 1); if (status) /* -ENOMEM */ return status; } else { status = nfs4_reset_slot_table(tbl, ses->fc_attrs.max_reqs, 1); if (status) return status; } tbl = &session->bc_slot_table; /* Back channel */ tbl = &ses->bc_slot_table; if (tbl->slots == NULL) { status = nfs4_init_slot_table(tbl, session->bc_attrs.max_reqs, 0); status = nfs4_init_slot_table(tbl, ses->bc_attrs.max_reqs, 0); if (status) nfs4_destroy_slot_tables(session); } /* Fore and back channel share a connection so get * both slot tables or neither */ nfs4_destroy_slot_tables(ses); } else status = nfs4_reset_slot_table(tbl, ses->bc_attrs.max_reqs, 0); return status; } Loading Loading @@ -5293,13 +5282,9 @@ int nfs4_proc_create_session(struct nfs_client *clp) if (status) goto out; /* Init and reset the fore channel */ status = nfs4_init_slot_tables(session); dprintk("slot table initialization returned %d\n", status); if (status) goto out; status = nfs4_reset_slot_tables(session); dprintk("slot table reset returned %d\n", status); /* Init or reset the session slot tables */ status = nfs4_setup_session_slot_tables(session); dprintk("slot table setup returned %d\n", status); if (status) goto out; Loading Loading
fs/nfs/nfs4proc.c +22 −37 Original line number Diff line number Diff line Loading @@ -5021,23 +5021,6 @@ static int nfs4_reset_slot_table(struct nfs4_slot_table *tbl, u32 max_reqs, return ret; } /* * Reset the forechannel and backchannel slot tables */ static int nfs4_reset_slot_tables(struct nfs4_session *session) { int status; status = nfs4_reset_slot_table(&session->fc_slot_table, session->fc_attrs.max_reqs, 1); if (status) return status; status = nfs4_reset_slot_table(&session->bc_slot_table, session->bc_attrs.max_reqs, 0); return status; } /* Destroy the slot table */ static void nfs4_destroy_slot_tables(struct nfs4_session *session) { Loading Loading @@ -5083,29 +5066,35 @@ static int nfs4_init_slot_table(struct nfs4_slot_table *tbl, } /* * Initialize the forechannel and backchannel tables * Initialize or reset the forechannel and backchannel tables */ static int nfs4_init_slot_tables(struct nfs4_session *session) static int nfs4_setup_session_slot_tables(struct nfs4_session *ses) { struct nfs4_slot_table *tbl; int status = 0; int status; tbl = &session->fc_slot_table; dprintk("--> %s\n", __func__); /* Fore channel */ tbl = &ses->fc_slot_table; if (tbl->slots == NULL) { status = nfs4_init_slot_table(tbl, session->fc_attrs.max_reqs, 1); status = nfs4_init_slot_table(tbl, ses->fc_attrs.max_reqs, 1); if (status) /* -ENOMEM */ return status; } else { status = nfs4_reset_slot_table(tbl, ses->fc_attrs.max_reqs, 1); if (status) return status; } tbl = &session->bc_slot_table; /* Back channel */ tbl = &ses->bc_slot_table; if (tbl->slots == NULL) { status = nfs4_init_slot_table(tbl, session->bc_attrs.max_reqs, 0); status = nfs4_init_slot_table(tbl, ses->bc_attrs.max_reqs, 0); if (status) nfs4_destroy_slot_tables(session); } /* Fore and back channel share a connection so get * both slot tables or neither */ nfs4_destroy_slot_tables(ses); } else status = nfs4_reset_slot_table(tbl, ses->bc_attrs.max_reqs, 0); return status; } Loading Loading @@ -5293,13 +5282,9 @@ int nfs4_proc_create_session(struct nfs_client *clp) if (status) goto out; /* Init and reset the fore channel */ status = nfs4_init_slot_tables(session); dprintk("slot table initialization returned %d\n", status); if (status) goto out; status = nfs4_reset_slot_tables(session); dprintk("slot table reset returned %d\n", status); /* Init or reset the session slot tables */ status = nfs4_setup_session_slot_tables(session); dprintk("slot table setup returned %d\n", status); if (status) goto out; Loading