]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
vfs_gpfs: trigger NOTIFY_ACTION_DIRLEASE_BREAK when changing offline attribute
authorRalph Boehme <slow@samba.org>
Wed, 19 May 2021 13:51:14 +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_gpfs.c

index 0f7ef45e3ee2152faccbad5d93b0331fc664e073..27c29c44cdd12ed0b4c16eb42473bcfc669c6538 100644 (file)
@@ -2336,10 +2336,11 @@ static ssize_t vfs_gpfs_pread(vfs_handle_struct *handle, files_struct *fsp,
 
        if ((ret != -1) && was_offline) {
                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 ret;
@@ -2406,10 +2407,11 @@ static ssize_t vfs_gpfs_pread_recv(struct tevent_req *req,
        if ((state->ret != -1) && state->was_offline) {
                DEBUG(10, ("sending notify\n"));
                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));
        }
 
        return state->ret;
@@ -2427,10 +2429,11 @@ static ssize_t vfs_gpfs_pwrite(vfs_handle_struct *handle, files_struct *fsp,
 
        if ((ret != -1) && was_offline) {
                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 ret;
@@ -2498,10 +2501,11 @@ static ssize_t vfs_gpfs_pwrite_recv(struct tevent_req *req,
        if ((state->ret != -1) && state->was_offline) {
                DEBUG(10, ("sending notify\n"));
                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));
        }
 
        return state->ret;