]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Flush dfree memcache on service reload
authorChristof Schmitt <cs@samba.org>
Sat, 19 May 2018 03:51:58 +0000 (20:51 -0700)
committerKarolin Seeger <kseeger@samba.org>
Thu, 7 Jun 2018 11:54:43 +0000 (13:54 +0200)
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

source3/smbd/dfree.c
source3/smbd/proto.h
source3/smbd/server_reload.c

index 5b20707ffae87fd6a4bb092755a13c7d94aa6451..d280e1efe7f8c44391ac1a393414b779545a9550 100644 (file)
@@ -273,3 +273,8 @@ out:
        TALLOC_FREE(to_free);
        return dfree_ret;
 }
+
+void flush_dfree_cache(void)
+{
+       memcache_flush(smbd_memcache(), DFREE_CACHE);
+}
index a688341c64dd37c8a054114c370913e12c115054..d814a30711fc0f223b9bbdaf89fc635228b8efc5 100644 (file)
@@ -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  */
 
index c93c0774979c335f105bb9fb81ef7c5a41b7de34..9b6209619c30b499ae04d8a854f7633026480616 100644 (file)
@@ -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);