summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/pvfs_flush.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-05-19 15:10:39 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:08:09 -0500
commit7f0e17e9030ad734977f66c2cc27faec501154a2 (patch)
treedc44952b04d4e61fb8fcff50b4a3cb720276b57d /source4/ntvfs/posix/pvfs_flush.c
parent472c0886254b82c2feffea734a80c4d29bd773b6 (diff)
downloadsamba-7f0e17e9030ad734977f66c2cc27faec501154a2.tar.gz
samba-7f0e17e9030ad734977f66c2cc27faec501154a2.tar.bz2
samba-7f0e17e9030ad734977f66c2cc27faec501154a2.zip
r15718: - split the SMBflush with the 0xFFFF wildcard fnum into a different level
metze (This used to be commit 95bf41b4d4ec96349802955e364fe44ef85f9077)
Diffstat (limited to 'source4/ntvfs/posix/pvfs_flush.c')
-rw-r--r--source4/ntvfs/posix/pvfs_flush.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/source4/ntvfs/posix/pvfs_flush.c b/source4/ntvfs/posix/pvfs_flush.c
index d21f257201..c1d8820c43 100644
--- a/source4/ntvfs/posix/pvfs_flush.c
+++ b/source4/ntvfs/posix/pvfs_flush.c
@@ -46,23 +46,27 @@ NTSTATUS pvfs_flush(struct ntvfs_module_context *ntvfs,
struct pvfs_state *pvfs = ntvfs->private_data;
struct pvfs_file *f;
- if (io->flush.in.file.fnum != 0xFFFF) {
+ switch (io->generic.level) {
+ case RAW_FLUSH_FLUSH:
f = pvfs_find_fd(pvfs, req, io->flush.in.file.fnum);
if (!f) {
return NT_STATUS_INVALID_HANDLE;
}
pvfs_flush_file(pvfs, f);
return NT_STATUS_OK;
- }
- if (!(pvfs->flags & PVFS_FLAG_STRICT_SYNC)) {
- return NT_STATUS_OK;
- }
+ case RAW_FLUSH_ALL:
+ if (!(pvfs->flags & PVFS_FLAG_STRICT_SYNC)) {
+ return NT_STATUS_OK;
+ }
- /* they are asking to flush all open files */
- for (f=pvfs->files.list;f;f=f->next) {
- pvfs_flush_file(pvfs, f);
+ /* they are asking to flush all open files */
+ for (f=pvfs->files.list;f;f=f->next) {
+ pvfs_flush_file(pvfs, f);
+ }
+
+ return NT_STATUS_OK;
}
- return NT_STATUS_OK;
+ return NT_STATUS_INVALID_LEVEL;
}