void *private_data),
void *private_data);
files_struct *file_find_fd(int fd);
-files_struct *file_find_dif(struct file_id id, unsigned long gen_id);
+files_struct *file_find_dif(struct smbd_server_connection *sconn,
+ struct file_id id, unsigned long gen_id);
files_struct *file_find_di_first(struct file_id id);
files_struct *file_find_di_next(files_struct *start_fsp);
bool file_find_subpath(files_struct *dir_fsp);
TALLOC_FREE(sm_str);
}
- fsp = file_find_dif(e.id, e.share_file_id);
+ fsp = file_find_dif(smbd_server_conn, e.id, e.share_file_id);
if (!fsp) {
DEBUG(10,("msg_close_file: failed to find file.\n"));
return;
Find a fsp given a device, inode and file_id.
****************************************************************************/
-files_struct *file_find_dif(struct file_id id, unsigned long gen_id)
+files_struct *file_find_dif(struct smbd_server_connection *sconn,
+ struct file_id id, unsigned long gen_id)
{
int count=0;
files_struct *fsp;
- for (fsp=smbd_server_conn->files;fsp;fsp=fsp->next,count++) {
+ for (fsp=sconn->files; fsp; fsp=fsp->next,count++) {
/* We can have a fsp->fh->fd == -1 here as it could be a stat open. */
if (file_id_equal(&fsp->file_id, &id) &&
fsp->fh->gen_id == gen_id ) {
if (count > 10) {
- DLIST_PROMOTE(smbd_server_conn->files, fsp);
+ DLIST_PROMOTE(sconn->files, fsp);
}
/* Paranoia check. */
if ((fsp->fh->fd == -1) &&
return;
}
- fsp = file_find_dif(share_entry->id,
+ fsp = file_find_dif(smbd_server_conn, share_entry->id,
share_entry->share_file_id);
if (!fsp) {
DEBUG(0,("validate_my_share_entries: PANIC : %s\n",
* we have an oplock on it.
*/
- fsp = file_find_dif(id, file_id);
+ fsp = file_find_dif(smbd_server_conn, id, file_id);
if(fsp == NULL) {
/* The file could have been closed in the meantime - return success. */