1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

s3:vfs: untangle logic for loading and probing modules in vfs_init_custom()

This is to be able to provide more specific error messages.

Michael
This commit is contained in:
Michael Adam 2009-04-29 16:33:45 +02:00
parent 3316ae9d75
commit 8aa41bdeb2

View File

@ -161,18 +161,30 @@ bool vfs_init_custom(connection_struct *conn, const char *vfs_object)
}
/* First, try to load the module with the new module system */
if((entry = vfs_find_backend_entry(module_name)) ||
(NT_STATUS_IS_OK(smb_probe_module("vfs", module_path)) &&
(entry = vfs_find_backend_entry(module_name)))) {
entry = vfs_find_backend_entry(module_name);
if (!entry) {
NTSTATUS status;
DEBUGADD(5,("Successfully loaded vfs module [%s] with the new modules system\n", vfs_object));
if ((ops = entry->vfs_op_tuples) == NULL) {
DEBUG(0, ("entry->vfs_op_tuples==NULL for [%s] failed\n", vfs_object));
DEBUG(5, ("vfs module [%s] not loaded - trying to load...\n",
vfs_object));
status = smb_probe_module("vfs", module_path);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("error probing vfs module '%s': %s\n",
module_path, nt_errstr(status)));
goto fail;
}
} else {
DEBUG(0,("Can't find a vfs module [%s]\n",vfs_object));
}
entry = vfs_find_backend_entry(module_name);
if (!entry) {
DEBUG(0,("Can't find a vfs module [%s]\n",vfs_object));
goto fail;
}
}
DEBUGADD(5,("Successfully loaded vfs module [%s] with the new modules system\n", vfs_object));
if ((ops = entry->vfs_op_tuples) == NULL) {
DEBUG(0, ("entry->vfs_op_tuples==NULL for [%s] failed\n", vfs_object));
goto fail;
}