• J. Bruce Fields's avatar
    knfsd: nfsd: make all exp_finding functions return -errno's on err · 2d3bb252
    J. Bruce Fields authored
    Currently exp_find(), exp_get_by_name(), and friends, return an export on
    success, and on failure return:
    
    	errors -EAGAIN (drop this request pending an upcall) or
    		-ETIMEDOUT (an upcall has timed out), or
    	return NULL, which can mean either that there was a memory allocation
    		failure, or that an export was not found, or that a passed-in
    		export lacks an auth_domain.
    
    Many callers seem to assume that NULL means that an export was not found,
    which may lead to bugs in the case of a memory allocation failure.
    
    Modify these functions to distinguish between the two NULL cases by returning
    either -ENOENT or -ENOMEM.  They now never return NULL.  We get to simplify
    some code in the process.
    
    We return -ENOENT in the case of a missing auth_domain.  This case should
    probably be removed (or converted to a bug) after confirming that it can never
    happen.
    Signed-off-by: default avatar"J. Bruce Fields" <bfields@citi.umich.edu>
    Signed-off-by: default avatarNeil Brown <neilb@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2d3bb252
export.c 33.7 KB