smbd: Remove "file_sync_all" function
authorVolker Lendecke <vl@samba.org>
Thu, 13 Sep 2018 04:21:37 +0000 (06:21 +0200)
committerVolker Lendecke <vl@samba.org>
Fri, 14 Sep 2018 05:49:13 +0000 (07:49 +0200)
Replace with a call to files_forall. Why? I just came across this
function that only has one pretty obscure user. This does not justify
a full library function, IMHO at least.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/smbd/files.c
source3/smbd/proto.h
source3/smbd/reply.c

index 303ab7bb92691a4bf6a888b0d9ea93d01beec360..397baea84cbf01543ee6fb303daec94ee42cd091 100644 (file)
@@ -454,22 +454,6 @@ bool file_find_subpath(files_struct *dir_fsp)
        return false;
 }
 
-/****************************************************************************
- Sync open files on a connection.
-****************************************************************************/
-
-void file_sync_all(connection_struct *conn)
-{
-       files_struct *fsp, *next;
-
-       for (fsp=conn->sconn->files; fsp; fsp=next) {
-               next=fsp->next;
-               if ((conn == fsp->conn) && (fsp->fh->fd != -1)) {
-                       sync_file(conn, fsp, True /* write through */);
-               }
-       }
-}
-
 /****************************************************************************
  Free up a fsp.
 ****************************************************************************/
index 5399c5ab483023a77cd55e212c167badfa20b92b..d49cd5c22513e34605934124d67020c1c31f8e52 100644 (file)
@@ -402,7 +402,6 @@ struct files_struct *file_find_one_fsp_from_lease_key(
        struct smbd_server_connection *sconn,
        const struct smb2_lease_key *lease_key);
 bool file_find_subpath(files_struct *dir_fsp);
-void file_sync_all(connection_struct *conn);
 void fsp_free(files_struct *fsp);
 void file_free(struct smb_request *req, files_struct *fsp);
 files_struct *file_fsp(struct smb_request *req, uint16_t fid);
index 4c6456c88f6889d02d870c6b4855bd56d91b48a7..49ca1d704117e97e9c00e8db41e6d01d2b52b8bb 100644 (file)
@@ -5267,6 +5267,23 @@ void reply_lseek(struct smb_request *req)
        return;
 }
 
+static struct files_struct *file_sync_one_fn(struct files_struct *fsp,
+                                            void *private_data)
+{
+       connection_struct *conn = talloc_get_type_abort(
+               private_data, connection_struct);
+
+       if (conn != fsp->conn) {
+               return NULL;
+       }
+       if (fsp->fh->fd == -1) {
+               return NULL;
+       }
+       sync_file(conn, fsp, True /* write through */);
+
+       return NULL;
+}
+
 /****************************************************************************
  Reply to a flush.
 ****************************************************************************/
@@ -5292,7 +5309,7 @@ void reply_flush(struct smb_request *req)
        }
 
        if (!fsp) {
-               file_sync_all(conn);
+               files_forall(req->sconn, file_sync_one_fn, conn);
        } else {
                NTSTATUS status = sync_file(conn, fsp, True);
                if (!NT_STATUS_IS_OK(status)) {