diff options
author | Scott Mayhew <smayhew@redhat.com> | 2021-05-29 13:43:52 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2021-06-10 11:12:45 -0400 |
commit | 30a72d9c056c8f96640a6b9cda4f458311d4424e (patch) | |
tree | 6c2b442e81f4e7272b5b39819f84879639a64258 /utils/gssd/gssd.h | |
parent | be7365239abf8556773b063730621967b9971708 (diff) | |
download | nfs-utils-30a72d9c056c8f96640a6b9cda4f458311d4424e.tar.gz |
gssd: deal with failed thread creation
If we fail to create a thread to handle an upcall, we still need to do a
downcall to tell the kernel about the failure, otherwise the process
that is trying to establish gss credentials will hang.
This patch shifts the thread creation down a level in the call chain so
now the main thread does a little more work up front (reading & parsing
the data from the pipefs file) so it has the info it needs to be able
to do the error downcall.
Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/gssd/gssd.h')
-rw-r--r-- | utils/gssd/gssd.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/utils/gssd/gssd.h b/utils/gssd/gssd.h index 1e8c58d..6d53647 100644 --- a/utils/gssd/gssd.h +++ b/utils/gssd/gssd.h @@ -84,14 +84,17 @@ struct clnt_info { struct clnt_upcall_info { struct clnt_info *clp; - char lbuf[RPC_CHAN_BUF_SIZE]; - int lbuflen; uid_t uid; + int fd; + char *srchost; + char *target; + char *service; }; -void handle_krb5_upcall(struct clnt_upcall_info *clp); -void handle_gssd_upcall(struct clnt_upcall_info *clp); +void handle_krb5_upcall(struct clnt_info *clp); +void handle_gssd_upcall(struct clnt_info *clp); void free_upcall_info(struct clnt_upcall_info *info); +void gssd_free_client(struct clnt_info *clp); #endif /* _RPC_GSSD_H_ */ |