On Thu, Feb 13, 2025 at 11:01 AM Chuck Lever <chuck.lever@xxxxxxxxxx> wrote: > > On 2/13/25 10:47 AM, Olga Kornievskaia wrote: > > Don't ignore return code of adding rdma listener. If nfs.conf has asked > > for "rdma=y" but adding the listener fails, don't ignore the failure. > > Note in soft-rdma-provider environment (such as soft iwarp, soft roce), > > when no address-constraints are used, an "any" listener is created and > > rdma-enabling is done independently. > > This behavior is confusing... I suggest that an nfs.conf man page > update accompany the below code change. Do you find only the rdma=y soft-rdma case confusing, or do you find that when listeners fail and we shouldn't start knfsd threads in general confusing? It was always the case that if rdma=y is done, then any listener created for it does not check whether or not the underlying interface is already rdma-enabled. This hasn't changed. Nor does this patch change it. > Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx> > > > > Fixes: e3b72007ab31 ("nfs-utils: nfsdctl: cleanup listeners if some failed") > > Signed-off-by: Olga Kornievskaia <okorniev@xxxxxxxxxx> > > --- > > utils/nfsdctl/nfsdctl.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/utils/nfsdctl/nfsdctl.c b/utils/nfsdctl/nfsdctl.c > > index 05fecc71..244910ef 100644 > > --- a/utils/nfsdctl/nfsdctl.c > > +++ b/utils/nfsdctl/nfsdctl.c > > @@ -1388,7 +1388,7 @@ static int configure_listeners(void) > > if (tcp) > > ret = add_listener("tcp", n->field, port); > > if (rdma) > > - add_listener("rdma", n->field, rdma_port); > > + ret = add_listener("rdma", n->field, rdma_port); > > if (ret) > > return ret; > > } > > @@ -1398,7 +1398,7 @@ static int configure_listeners(void) > > if (tcp) > > ret = add_listener("tcp", "", port); > > if (rdma) > > - add_listener("rdma", "", rdma_port); > > + ret = add_listener("rdma", "", rdma_port); > > } > > return ret; > > } > > > -- > Chuck Lever >