]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Remove deferred_open_record_create()
authorVolker Lendecke <vl@samba.org>
Tue, 30 Jul 2019 05:20:42 +0000 (07:20 +0200)
committerJeremy Allison <jra@samba.org>
Tue, 6 Aug 2019 21:49:30 +0000 (21:49 +0000)
This hides a talloc off the NULL context: The caller needs to make sure
this is put on a real talloc context later. Make that more
obvious. Also, it passes down a boolean flag, making its purpose a bit
opaque to the caller sites.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/open.c

index ac8234a18d3147295706fd707899462a4485d225..a90bca2cea1e0f7b419e69748aaad6171515f312 100644 (file)
@@ -2384,23 +2384,6 @@ static bool request_timed_out(struct smb_request *req, struct timeval timeout)
        return (timeval_compare(&end_time, &now) < 0);
 }
 
-static struct deferred_open_record *deferred_open_record_create(
-       bool async_open)
-{
-       struct deferred_open_record *record = NULL;
-
-       record = talloc(NULL, struct deferred_open_record);
-       if (record == NULL) {
-               return NULL;
-       }
-
-       *record = (struct deferred_open_record) {
-               .async_open = async_open,
-       };
-
-       return record;
-}
-
 struct defer_open_state {
        struct smbXsrv_connection *xconn;
        uint64_t mid;
@@ -2440,7 +2423,7 @@ static void defer_open(struct share_mode_lock *lck,
                  delayed_for_oplocks ? "yes" : "no",
                  file_id_string_tos(&id));
 
-       open_rec = deferred_open_record_create(false);
+       open_rec = talloc_zero(NULL, struct deferred_open_record);
        if (open_rec == NULL) {
                TALLOC_FREE(lck);
                exit_server("talloc failed");
@@ -2538,7 +2521,7 @@ static void setup_kernel_oplock_poll_open(struct smb_request *req,
                return;
        }
 
-       open_rec = deferred_open_record_create(false);
+       open_rec = talloc_zero(NULL, struct deferred_open_record);
        if (open_rec == NULL) {
                exit_server("talloc failed");
        }
@@ -2661,10 +2644,11 @@ static void schedule_async_open(struct smb_request *req)
                return;
        }
 
-       open_rec = deferred_open_record_create(true);
+       open_rec = talloc_zero(NULL, struct deferred_open_record);
        if (open_rec == NULL) {
                exit_server("deferred_open_record_create failed");
        }
+       open_rec->async_open = true;
 
        ok = push_deferred_open_message_smb(
                req, timeout, (struct file_id){0}, open_rec);