diff options
author | Christof Schmitt <cs@samba.org> | 2018-05-18 20:51:58 -0700 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2018-06-07 13:54:43 +0200 |
commit | d3c2cc28545b052754a2b77a5df0a7dc86e90766 (patch) | |
tree | 330e13fea8756f163ead41bad5a9299691a4aafc /source3 | |
parent | b310f375726afedbc33f9f9033f7f79772898dc9 (diff) | |
download | samba-d3c2cc28545b052754a2b77a5df0a7dc86e90766.tar.gz |
smbd: Flush dfree memcache on service reload
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13446
Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit e30d0c0e0d11f65b2d1886be3c0fe9e32eaf3926)
Autobuild-User(v4-7-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-7-test): Thu Jun 7 13:54:43 CEST 2018 on sn-devel-144
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/dfree.c | 5 | ||||
-rw-r--r-- | source3/smbd/proto.h | 1 | ||||
-rw-r--r-- | source3/smbd/server_reload.c | 1 |
3 files changed, 7 insertions, 0 deletions
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 a688341c64d..d814a30711f 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -176,6 +176,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); |