[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-1179-g5a1f0c0

Stefan Metzmacher metze at samba.org
Sat Mar 1 09:30:44 GMT 2008


The branch, v4-0-test has been updated
       via  5a1f0c0ce995064c23e9f726bceddbd8442c4293 (commit)
      from  b5db8defcae0a718e5239e8c7705c9bf6eb431ec (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 5a1f0c0ce995064c23e9f726bceddbd8442c4293
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sat Mar 1 10:05:25 2008 +0100

    pvfs_rename: move odb_rename() onto pvfs_do_rename()
    
    metze

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

Summary of changes:
 source/ntvfs/posix/pvfs_rename.c      |   25 ++++++++++++-------------
 source/ntvfs/posix/pvfs_setfileinfo.c |    5 +----
 2 files changed, 13 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/ntvfs/posix/pvfs_rename.c b/source/ntvfs/posix/pvfs_rename.c
index 185e35f..29b2d03 100644
--- a/source/ntvfs/posix/pvfs_rename.c
+++ b/source/ntvfs/posix/pvfs_rename.c
@@ -28,16 +28,22 @@
 /*
   do a file rename, and send any notify triggers
 */
-NTSTATUS pvfs_do_rename(struct pvfs_state *pvfs, const struct pvfs_filename *name1, 
+NTSTATUS pvfs_do_rename(struct pvfs_state *pvfs,
+			struct odb_lock *lck,
+			const struct pvfs_filename *name1,
 			const char *name2)
 {
 	const char *r1, *r2;
 	uint32_t mask;
+	NTSTATUS status;
 
 	if (rename(name1->full_name, name2) == -1) {
 		return pvfs_map_errno(pvfs, errno);
 	}
 
+	status = odb_rename(lck, name2);
+	NT_STATUS_NOT_OK_RETURN(status);
+
 	if (name1->dos.attrib & FILE_ATTRIBUTE_DIRECTORY) {
 		mask = FILE_NOTIFY_CHANGE_DIR_NAME;
 	} else {
@@ -315,11 +321,7 @@ static NTSTATUS pvfs_rename_one(struct pvfs_state *pvfs,
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	status = pvfs_do_rename(pvfs, name1, fname2);
-
-	if (NT_STATUS_IS_OK(status)) {
-		status = odb_rename(lck, fname2);
-	}
+	status = pvfs_do_rename(pvfs, lck, name1, fname2);
 
 failed:
 	talloc_free(mem_ctx);
@@ -448,9 +450,9 @@ static NTSTATUS pvfs_rename_mv(struct ntvfs_module_context *ntvfs,
 		return status;
 	}
 
-	status = pvfs_do_rename(pvfs, name1, name2->full_name);
-	if (NT_STATUS_IS_OK(status)) {
-		status = odb_rename(lck, name2->full_name);
+	status = pvfs_do_rename(pvfs, lck, name1, name2->full_name);
+	if (!NT_STATUS_IS_OK(status)) {
+		return status;
 	}
 	
 	return NT_STATUS_OK;
@@ -532,10 +534,7 @@ static NTSTATUS pvfs_rename_nt(struct ntvfs_module_context *ntvfs,
 	case RENAME_FLAG_RENAME:
 		status = pvfs_access_check_parent(pvfs, req, name2, SEC_DIR_ADD_FILE);
 		NT_STATUS_NOT_OK_RETURN(status);
-		status = pvfs_do_rename(pvfs, name1, name2->full_name);
-		if (NT_STATUS_IS_OK(status)) {
-			status = odb_rename(lck, name2->full_name);
-		}
+		status = pvfs_do_rename(pvfs, lck, name1, name2->full_name);
 		NT_STATUS_NOT_OK_RETURN(status);
 		break;
 
diff --git a/source/ntvfs/posix/pvfs_setfileinfo.c b/source/ntvfs/posix/pvfs_setfileinfo.c
index 5ac9ced..ad47fe9 100644
--- a/source/ntvfs/posix/pvfs_setfileinfo.c
+++ b/source/ntvfs/posix/pvfs_setfileinfo.c
@@ -171,10 +171,7 @@ static NTSTATUS pvfs_setfileinfo_rename(struct pvfs_state *pvfs,
 		return NT_STATUS_INTERNAL_DB_CORRUPTION;
 	}
 
-	status = pvfs_do_rename(pvfs, name, name2->full_name);
-	if (NT_STATUS_IS_OK(status)) {
-		status = odb_rename(lck, name2->full_name);
-	}
+	status = pvfs_do_rename(pvfs, lck, name, name2->full_name);
 	talloc_free(lck);
 	NT_STATUS_NOT_OK_RETURN(status);
 	if (NT_STATUS_IS_OK(status)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list