Re: What does rpc.mountd dlopen() libnfsjunct.so rather than libnfsjunct.so.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 4 Mar 2014 13:35:09 -0500 Chuck Lever <chuck.lever@xxxxxxxxxx> wrote:

> 
> On Feb 26, 2014, at 5:58 PM, NeilBrown <neilb@xxxxxxx> wrote:
> 
> [ … rationale removed … ]
> 
> > So rather than dlopening "libnfsjunct.so.0" rpc.mountd should probably
> > use a library name provided by the include file
> > 
> > Thanks,
> > NeilBrown
> > 
> > diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
> > index ca35de28847a..1a8c20492869 100644
> > --- a/utils/mountd/cache.c
> > +++ b/utils/mountd/cache.c
> > @@ -1139,7 +1139,11 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
> > 	struct link_map *map;
> > 	void *handle;
> > 
> > -	handle = dlopen("libnfsjunct.so", RTLD_NOW);
> > +#ifdef JP_LIB_NAME
> > +	handle = dlopen(JP_LIB_NAME, RTLD_NOW);
> 
> What I can do now for fedfs-utils 0.10.1 is add a macro to the header file that defines the library name. I'd like to go with
> 
> #define JP_NFSPLUGIN_SONAME “libnfsjunct.so.0”
> 
> unless there are objections.

Perfectly happy with that, thanks.

> 
> The mountd patch could also remove the API version check in invoke_junction_ops() when this macro is present.

I'll send a patch to Steve.

Thanks,
NeilBrown

> 
> > +#else
> > +	handle = dlopen("libnfsjunct.so.0", RTLD_NOW);
> > +#endif
> > 	if (handle == NULL) {
> > 		xlog(D_GENERAL, "%s: dlopen: %s", __func__, dlerror());
> > 		return NULL;
> 
> --
> Chuck Lever
> chuck[dot]lever[at]oracle[dot]com
> 
> 

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux