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