[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-1318-g8aa41bd

Michael Adam obnox at samba.org
Wed Apr 29 14:48:01 GMT 2009


The branch, master has been updated
       via  8aa41bdeb21d087cba1ab20bd2a4bd69cd519881 (commit)
      from  3316ae9d75dfe6c7a960938c9503367880510079 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 8aa41bdeb21d087cba1ab20bd2a4bd69cd519881
Author: Michael Adam <obnox at samba.org>
Date:   Wed Apr 29 16:33:45 2009 +0200

    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

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/vfs.c |   34 +++++++++++++++++++++++-----------
 1 files changed, 23 insertions(+), 11 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c
index 4267728..f219e55 100644
--- a/source3/smbd/vfs.c
+++ b/source3/smbd/vfs.c
@@ -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)))) {
-
-		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));
+	entry = vfs_find_backend_entry(module_name);
+	if (!entry) {
+		NTSTATUS status;
+
+		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;
+		}
+
+		entry = vfs_find_backend_entry(module_name);
+		if (!entry) {
+			DEBUG(0,("Can't find a vfs module [%s]\n",vfs_object));
 			goto fail;
-	 	}
-	} else {
-		DEBUG(0,("Can't find a vfs module [%s]\n",vfs_object));
+		}
+	}
+
+	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;
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list