]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: set fsp->is_sparse in vfs_default_durable_reconnect()
authorRalph Boehme <slow@samba.org>
Thu, 6 Dec 2018 17:15:00 +0000 (18:15 +0100)
committerVolker Lendecke <vl@samba.org>
Mon, 8 Dec 2025 10:20:36 +0000 (10:20 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/smbd/durable.c

index 8e99db0f6a170110e94cf8edf74d6a0864b44768..108e964228721cd52c673e21f6f4d8e0493db627 100644 (file)
@@ -565,6 +565,7 @@ static void vfs_default_durable_reconnect_fn(struct share_mode_lock *lck,
        struct vfs_open_how how = { .flags = 0, };
        struct file_id file_id;
        bool have_share_mode_entry = false;
+       uint32_t dosmode;
        int ret;
        bool ok;
 
@@ -733,7 +734,9 @@ static void vfs_default_durable_reconnect_fn(struct share_mode_lock *lck,
                goto fail;
        }
 
-       (void)fdos_mode(fsp);
+       dosmode = fdos_mode(fsp);
+       fsp->fsp_flags.is_sparse = (dosmode & FILE_ATTRIBUTE_SPARSE);
+       fsp->fsp_flags.is_sparse |= e.flags & SHARE_ENTRY_FLAG_POSIX_OPEN;
 
        ok = vfs_default_durable_reconnect_check_stat(&state->cookie.stat_info,
                                                      fsp);