From: Christof Schmitt Date: Sat, 19 May 2018 03:51:58 +0000 (-0700) Subject: smbd: Flush dfree memcache on service reload X-Git-Tag: ldb-1.4.0~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e30d0c0e0d11f65b2d1886be3c0fe9e32eaf3926;p=thirdparty%2Fsamba.git smbd: Flush dfree memcache on service reload BUG: https://bugzilla.samba.org/show_bug.cgi?id=13446 Signed-off-by: Christof Schmitt Reviewed-by: Jeremy Allison --- diff --git a/source3/smbd/dfree.c b/source3/smbd/dfree.c index 5b20707ffae..d280e1efe7f 100644 --- a/source3/smbd/dfree.c +++ b/source3/smbd/dfree.c @@ -273,3 +273,8 @@ out: TALLOC_FREE(to_free); return dfree_ret; } + +void flush_dfree_cache(void) +{ + memcache_flush(smbd_memcache(), DFREE_CACHE); +} diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index 86b65515289..7a5ac4c4bc8 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -173,6 +173,7 @@ uint64_t sys_disk_free(connection_struct *conn, struct smb_filename *fname, uint64_t *bsize, uint64_t *dfree, uint64_t *dsize); uint64_t get_dfree_info(connection_struct *conn, struct smb_filename *fname, uint64_t *bsize, uint64_t *dfree, uint64_t *dsize); +void flush_dfree_cache(void); /* The following definitions come from smbd/dir.c */ diff --git a/source3/smbd/server_reload.c b/source3/smbd/server_reload.c index c93c0774979..9b6209619c3 100644 --- a/source3/smbd/server_reload.c +++ b/source3/smbd/server_reload.c @@ -164,6 +164,7 @@ bool reload_services(struct smbd_server_connection *sconn, mangle_reset_cache(); reset_stat_cache(); + flush_dfree_cache(); /* this forces service parameters to be flushed */ set_current_service(NULL,0,True);