]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
vfs_tsmsm: trigger NOTIFY_ACTION_DIRLEASE_BREAK when changing offline attribute
authorRalph Boehme <slow@samba.org>
Wed, 19 May 2021 13:51:36 +0000 (15:51 +0200)
committerRalph Boehme <slow@samba.org>
Tue, 5 Nov 2024 14:39:30 +0000 (14:39 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/modules/vfs_tsmsm.c

index cc32996a1227b27777ad2c4c9051c5c9f36bfbb8..e64a3eaa81f49915e97611435695c302d5201243 100644 (file)
@@ -358,10 +358,11 @@ static ssize_t tsmsm_pread_recv(struct tevent_req *req,
        if (state->ret >= 0 && state->was_offline) {
                struct files_struct *fsp = state->fsp;
                notify_fname(fsp->conn,
-                            NOTIFY_ACTION_MODIFIED,
+                            NOTIFY_ACTION_MODIFIED |
+                            NOTIFY_ACTION_DIRLEASE_BREAK,
                             FILE_NOTIFY_CHANGE_ATTRIBUTES,
                             fsp->fsp_name,
-                            NULL);
+                            fsp_get_smb2_lease(fsp));
        }
        *vfs_aio_state = state->vfs_aio_state;
        return state->ret;
@@ -425,10 +426,11 @@ static ssize_t tsmsm_pwrite_recv(struct tevent_req *req,
        if (state->ret >= 0 && state->was_offline) {
                struct files_struct *fsp = state->fsp;
                notify_fname(fsp->conn,
-                            NOTIFY_ACTION_MODIFIED,
+                            NOTIFY_ACTION_MODIFIED |
+                            NOTIFY_ACTION_DIRLEASE_BREAK,
                             FILE_NOTIFY_CHANGE_ATTRIBUTES,
                             fsp->fsp_name,
-                            NULL);
+                            fsp_get_smb2_lease(fsp));
        }
        *vfs_aio_state = state->vfs_aio_state;
        return state->ret;
@@ -461,10 +463,10 @@ static ssize_t tsmsm_pread(struct vfs_handle_struct *handle, struct files_struct
               what we can do is to send notification that file became online
            */
            notify_fname(handle->conn,
-                        NOTIFY_ACTION_MODIFIED,
+                        NOTIFY_ACTION_MODIFIED | NOTIFY_ACTION_DIRLEASE_BREAK,
                         FILE_NOTIFY_CHANGE_ATTRIBUTES,
                         fsp->fsp_name,
-                        NULL);
+                        fsp_get_smb2_lease(fsp));
        }
 
        return result;
@@ -481,10 +483,10 @@ static ssize_t tsmsm_pwrite(struct vfs_handle_struct *handle, struct files_struc
               what we can do is to send notification that file became online
            */
            notify_fname(handle->conn,
-                        NOTIFY_ACTION_MODIFIED,
+                        NOTIFY_ACTION_MODIFIED | NOTIFY_ACTION_DIRLEASE_BREAK,
                         FILE_NOTIFY_CHANGE_ATTRIBUTES,
                         fsp->fsp_name,
-                        NULL);
+                        fsp_get_smb2_lease(fsp));
        }
 
        return result;