mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
s3:files: reorder file_free() a bit
Pair-Programmed-With: Volker Lendecke <vl@samba.org> Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
parent
82a96d2432
commit
7aa9ad5bb9
@ -502,18 +502,7 @@ void file_sync_all(connection_struct *conn)
|
||||
void file_free(struct smb_request *req, files_struct *fsp)
|
||||
{
|
||||
struct smbd_server_connection *sconn = fsp->conn->sconn;
|
||||
|
||||
DLIST_REMOVE(sconn->files, fsp);
|
||||
SMB_ASSERT(sconn->num_files > 0);
|
||||
sconn->num_files--;
|
||||
|
||||
TALLOC_FREE(fsp->fake_file_handle);
|
||||
|
||||
if (fsp->fh->ref_count == 1) {
|
||||
TALLOC_FREE(fsp->fh);
|
||||
} else {
|
||||
fsp->fh->ref_count--;
|
||||
}
|
||||
int fnum = fsp->fnum;
|
||||
|
||||
if (fsp->notify) {
|
||||
struct notify_context *notify_ctx =
|
||||
@ -528,10 +517,6 @@ void file_free(struct smb_request *req, files_struct *fsp)
|
||||
if (sconn->file_bmap != NULL) {
|
||||
bitmap_clear(sconn->file_bmap, fsp->fnum - FILE_HANDLE_OFFSET);
|
||||
}
|
||||
DEBUG(5,("freed files structure %d (%u used)\n",
|
||||
fsp->fnum, (unsigned int)sconn->num_files));
|
||||
|
||||
fsp->conn->num_files_open--;
|
||||
|
||||
if ((req != NULL) && (fsp == req->chain_fsp)) {
|
||||
req->chain_fsp = NULL;
|
||||
@ -553,12 +538,29 @@ void file_free(struct smb_request *req, files_struct *fsp)
|
||||
/* Drop all remaining extensions. */
|
||||
vfs_remove_all_fsp_extensions(fsp);
|
||||
|
||||
DLIST_REMOVE(sconn->files, fsp);
|
||||
SMB_ASSERT(sconn->num_files > 0);
|
||||
sconn->num_files--;
|
||||
|
||||
TALLOC_FREE(fsp->fake_file_handle);
|
||||
|
||||
if (fsp->fh->ref_count == 1) {
|
||||
TALLOC_FREE(fsp->fh);
|
||||
} else {
|
||||
fsp->fh->ref_count--;
|
||||
}
|
||||
|
||||
fsp->conn->num_files_open--;
|
||||
|
||||
/* this is paranoia, just in case someone tries to reuse the
|
||||
information */
|
||||
ZERO_STRUCTP(fsp);
|
||||
|
||||
/* fsp->fsp_name is a talloc child and is free'd automatically. */
|
||||
TALLOC_FREE(fsp);
|
||||
|
||||
DEBUG(5,("freed files structure %d (%u used)\n",
|
||||
fnum, (unsigned int)sconn->num_files));
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
Loading…
Reference in New Issue
Block a user