1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

smbd: Move closing a print file out of close_normal_file() (it isn't a normal file) and into close_file().

Streamlines closing print files and allows close_normal_file()
to restrict itself to is_fsa fsps.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
Jeremy Allison 2020-12-16 19:49:56 -08:00
parent 12dd02d884
commit 59b0fae26e

View File

@ -788,13 +788,6 @@ static NTSTATUS close_normal_file(struct smb_request *req, files_struct *fsp,
fsp->op->global->durable = false; fsp->op->global->durable = false;
} }
if (fsp->print_file) {
/* FIXME: return spool errors */
print_spool_end(fsp, close_type);
file_free(req, fsp);
return NT_STATUS_OK;
}
/* If this is an old DOS or FCB open and we have multiple opens on /* If this is an old DOS or FCB open and we have multiple opens on
the same handle we only have one share mode. Ensure we only remove the same handle we only have one share mode. Ensure we only remove
the share mode on the last close. */ the share mode on the last close. */
@ -1306,6 +1299,11 @@ NTSTATUS close_file(struct smb_request *req, files_struct *fsp,
status = close_directory(req, fsp, close_type); status = close_directory(req, fsp, close_type);
} else if (fsp->fake_file_handle != NULL) { } else if (fsp->fake_file_handle != NULL) {
status = close_fake_file(req, fsp); status = close_fake_file(req, fsp);
} else if (fsp->print_file != NULL) {
/* FIXME: return spool errors */
print_spool_end(fsp, close_type);
file_free(req, fsp);
status = NT_STATUS_OK;
} else { } else {
status = close_normal_file(req, fsp, close_type); status = close_normal_file(req, fsp, close_type);
} }