From: Ralph Boehme Date: Thu, 6 Dec 2018 17:15:00 +0000 (+0100) Subject: smbd: set fsp->is_sparse in vfs_default_durable_reconnect() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f2ea2ead517f413d1e848abca279aa0ddc9ae664;p=thirdparty%2Fsamba.git smbd: set fsp->is_sparse in vfs_default_durable_reconnect() Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke --- diff --git a/source3/smbd/durable.c b/source3/smbd/durable.c index 8e99db0f6a1..108e9642287 100644 --- a/source3/smbd/durable.c +++ b/source3/smbd/durable.c @@ -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);