s3: Lift smbd_server_conn from file_find_dif
authorVolker Lendecke <vl@samba.org>
Mon, 27 Sep 2010 02:00:31 +0000 (04:00 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 28 Sep 2010 05:36:16 +0000 (07:36 +0200)
source3/include/proto.h
source3/smbd/close.c
source3/smbd/files.c
source3/smbd/open.c
source3/smbd/oplock.c

index af25db66a1e02090dfe2406eeac908ed3fcda0b0..d70c823e20fe2603c42e75c1559dc045bbdd9b3e 100644 (file)
@@ -4761,7 +4761,8 @@ struct files_struct *files_forall(
                                   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);
index fad960149142eb66b2c642492485be5011e112ff..c25d7e116830ef5d1274628391e40095fc2caa9c 100644 (file)
@@ -1117,7 +1117,7 @@ void msg_close_file(struct messaging_context *msg_ctx,
                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;
index 5293529411b390245f7dc454492d501fc75dddea..3f353a3eb2901b6dd36b70b4e635b4c9a2936d5d 100644 (file)
@@ -269,17 +269,18 @@ files_struct *file_find_fd(int fd)
  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) &&
index e9f0e6cd4f68415bed28f4ec32e4de4ad338c836..44de5a3cd0374eda1f4fbadff87b5f8fa5a9b993 100644 (file)
@@ -765,7 +765,7 @@ static void validate_my_share_entries(int num,
                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",
index 63a17e16a376ad044823b128dd3a101795c0e842..5521a95c4c6009aad51357c8455e2f09a6220ef7 100644 (file)
@@ -273,7 +273,7 @@ static files_struct *initial_break_processing(struct file_id id, unsigned long f
         * 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. */