void file_close_pid(uint16 smbpid, int vuid);
void file_init(void);
void file_close_user(int vuid);
-void file_dump_open_table(void);
struct files_struct *files_forall(
struct files_struct *(*fn)(struct files_struct *fsp,
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_fsp(files_struct *orig_fsp);
files_struct *file_find_di_first(struct file_id id);
files_struct *file_find_di_next(files_struct *start_fsp);
-files_struct *file_find_print(void);
bool file_find_subpath(files_struct *dir_fsp);
void file_sync_all(connection_struct *conn);
void file_free(struct smb_request *req, files_struct *fsp);
return NULL;
}
-/****************************************************************************
- Debug to enumerate all open files in the smbd.
-****************************************************************************/
-
-void file_dump_open_table(void)
-{
- int count=0;
- files_struct *fsp;
-
- for (fsp=Files;fsp;fsp=fsp->next,count++) {
- DEBUG(10,("Files[%d], fnum = %d, name %s, fd = %d, gen = %lu, "
- "fileid=%s\n", count, fsp->fnum, fsp_str_dbg(fsp),
- fsp->fh->fd, (unsigned long)fsp->fh->gen_id,
- file_id_string_tos(&fsp->file_id)));
- }
-}
-
/****************************************************************************
Find a fsp given a file descriptor.
****************************************************************************/
return NULL;
}
-/****************************************************************************
- Check if an fsp still exists.
-****************************************************************************/
-
-files_struct *file_find_fsp(files_struct *orig_fsp)
-{
- files_struct *fsp;
-
- for (fsp=Files;fsp;fsp=fsp->next) {
- if (fsp == orig_fsp)
- return fsp;
- }
-
- return NULL;
-}
-
/****************************************************************************
Find the first fsp given a device and inode.
We use a singleton cache here to speed up searching from getfilepathinfo
return NULL;
}
-/****************************************************************************
- Find a fsp that is open for printing.
-****************************************************************************/
-
-files_struct *file_find_print(void)
-{
- files_struct *fsp;
-
- for (fsp=Files;fsp;fsp=fsp->next) {
- if (fsp->print_file) {
- return fsp;
- }
- }
-
- return NULL;
-}
-
/****************************************************************************
Find any fsp open with a pathname below that of an already open path.
****************************************************************************/