svn commit: samba r3142 - in branches/SAMBA_4_0/source/ntvfs/posix: .

tridge at samba.org tridge at samba.org
Sat Oct 23 06:23:11 GMT 2004


Author: tridge
Date: 2004-10-23 06:22:57 +0000 (Sat, 23 Oct 2004)
New Revision: 3142

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/ntvfs/posix&rev=3142&nolog=1

Log:
fill in all the ntcreatex response fields explicitly, rather than
zeroing. This makes it clearer what bits are not yet implemented (and
is more valgrind friendly)


Modified:
   branches/SAMBA_4_0/source/ntvfs/posix/pvfs_open.c


Changeset:
Modified: branches/SAMBA_4_0/source/ntvfs/posix/pvfs_open.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/posix/pvfs_open.c	2004-10-22 20:47:34 UTC (rev 3141)
+++ branches/SAMBA_4_0/source/ntvfs/posix/pvfs_open.c	2004-10-23 06:22:57 UTC (rev 3142)
@@ -70,6 +70,7 @@
 	struct pvfs_file *f;
 	int fnum;
 	NTSTATUS status;
+	uint32_t create_action;
 
 	/* if the client says it must be a directory, and it isn't,
 	   then fail */
@@ -133,6 +134,9 @@
 		if (!NT_STATUS_IS_OK(status)) {
 			return status;
 		}
+		create_action = NTCREATEX_ACTION_CREATED;
+	} else {
+		create_action = NTCREATEX_ACTION_EXISTED;
 	}
 
 	if (!name->exists) {
@@ -144,17 +148,19 @@
 	/* the open succeeded, keep this handle permanently */
 	talloc_steal(pvfs, f);
 
-	ZERO_STRUCT(io->generic.out);
-	
-	io->generic.out.create_time  = name->dos.create_time;
-	io->generic.out.access_time  = name->dos.access_time;
-	io->generic.out.write_time   = name->dos.write_time;
-	io->generic.out.change_time  = name->dos.change_time;
-	io->generic.out.fnum         = f->fnum;
-	io->generic.out.alloc_size   = 0;
-	io->generic.out.size         = 0;
-	io->generic.out.attrib       = name->dos.attrib;
-	io->generic.out.is_directory = 1;
+	io->generic.out.oplock_level  = NO_OPLOCK;
+	io->generic.out.fnum          = f->fnum;
+	io->generic.out.create_action = create_action;
+	io->generic.out.create_time   = name->dos.create_time;
+	io->generic.out.access_time   = name->dos.access_time;
+	io->generic.out.write_time    = name->dos.write_time;
+	io->generic.out.change_time   = name->dos.change_time;
+	io->generic.out.attrib        = name->dos.attrib;
+	io->generic.out.alloc_size    = 0;
+	io->generic.out.size          = 0;
+	io->generic.out.file_type     = FILE_TYPE_DISK;
+	io->generic.out.ipc_state     = 0;
+	io->generic.out.is_directory  = 1;
 
 	return NT_STATUS_OK;
 }
@@ -283,19 +289,19 @@
 	   abnormal termination */
 	talloc_set_destructor(f, pvfs_fd_destructor);
 
-	ZERO_STRUCT(io->generic.out);
-	
-	io->generic.out.create_time = name->dos.create_time;
-	io->generic.out.access_time = name->dos.access_time;
-	io->generic.out.write_time = name->dos.write_time;
-	io->generic.out.change_time = name->dos.change_time;
-	io->generic.out.fnum = f->fnum;
-	io->generic.out.alloc_size = name->dos.alloc_size;
-	io->generic.out.size = name->st.st_size;
-	io->generic.out.attrib = name->dos.attrib;
+	io->generic.out.oplock_level  = NO_OPLOCK;
+	io->generic.out.fnum          = f->fnum;
 	io->generic.out.create_action = NTCREATEX_ACTION_CREATED;
-	io->generic.out.is_directory = 0;
-	io->generic.out.file_type = FILE_TYPE_DISK;
+	io->generic.out.create_time   = name->dos.create_time;
+	io->generic.out.access_time   = name->dos.access_time;
+	io->generic.out.write_time    = name->dos.write_time;
+	io->generic.out.change_time   = name->dos.change_time;
+	io->generic.out.attrib        = name->dos.attrib;
+	io->generic.out.alloc_size    = name->dos.alloc_size;
+	io->generic.out.size          = name->st.st_size;
+	io->generic.out.file_type     = FILE_TYPE_DISK;
+	io->generic.out.ipc_state     = 0;
+	io->generic.out.is_directory  = 0;
 
 	/* success - keep the file handle */
 	talloc_steal(pvfs, f);
@@ -464,19 +470,19 @@
 	   abnormal termination */
 	talloc_set_destructor(f, pvfs_fd_destructor);
 
-	ZERO_STRUCT(io->generic.out);
-	
-	io->generic.out.create_time = name->dos.create_time;
-	io->generic.out.access_time = name->dos.access_time;
-	io->generic.out.write_time = name->dos.write_time;
-	io->generic.out.change_time = name->dos.change_time;
-	io->generic.out.fnum = f->fnum;
-	io->generic.out.alloc_size = name->dos.alloc_size;
-	io->generic.out.size = name->st.st_size;
-	io->generic.out.attrib = name->dos.attrib;
+	io->generic.out.oplock_level  = NO_OPLOCK;
+	io->generic.out.fnum          = f->fnum;
 	io->generic.out.create_action = NTCREATEX_ACTION_EXISTED;
-	io->generic.out.is_directory = 0;
-	io->generic.out.file_type = FILE_TYPE_DISK;
+	io->generic.out.create_time   = name->dos.create_time;
+	io->generic.out.access_time   = name->dos.access_time;
+	io->generic.out.write_time    = name->dos.write_time;
+	io->generic.out.change_time   = name->dos.change_time;
+	io->generic.out.attrib        = name->dos.attrib;
+	io->generic.out.alloc_size    = name->dos.alloc_size;
+	io->generic.out.size          = name->st.st_size;
+	io->generic.out.file_type     = FILE_TYPE_DISK;
+	io->generic.out.ipc_state     = 0;
+	io->generic.out.is_directory  = 0;
 
 	/* success - keep the file handle */
 	talloc_steal(pvfs, f);



More information about the samba-cvs mailing list