The Samba-Bugzilla – Attachment 6028 Details for
Bug 7744
"dfree cache time" doesn't work.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am fix for 3.5.x.
0001-Fix-bug-7744-dfree-cache-time-doesn-t-work.patch (text/plain), 2.26 KB, created by
Jeremy Allison
on 2010-10-20 16:01:35 UTC
(
hide
)
Description:
git-am fix for 3.5.x.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2010-10-20 16:01:35 UTC
Size:
2.26 KB
patch
obsolete
>From ca5d1a1bace7d900ec3ea06194ec67c3e6532ff1 Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Wed, 20 Oct 2010 13:58:15 -0700 >Subject: [PATCH] Fix bug #7744 - "dfree cache time" doesn't work. > >There is a bug in processing the dfree cache time, which is associated with the >smbd idle timer. The idle timer call conn_idle_all(), which updates the >conn->lastused timestamp. The dfree cache time code in smbd/dfree.c depends on >conn->lastused being up to date to refresh the cached dfree value. > >Unfortunately the conn_idle_all() returns early if any of the connection >structs is not idle, never updating any further conn->lastused timestamps. If >(as is common due to an IPC$ connection) there are more than one used >connection struct, then the conn->lastused timestamps after the IPC$ connection >in the connection list will never be updated. > >Ensure we always update conn->lastused for all connections when calling >conn_idle_all(). > >Jeremy. >--- > source3/smbd/conn.c | 9 ++++++--- > 1 files changed, 6 insertions(+), 3 deletions(-) > >diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c >index 959fcd7..37c2311 100644 >--- a/source3/smbd/conn.c >+++ b/source3/smbd/conn.c >@@ -197,6 +197,7 @@ bool conn_idle_all(struct smbd_server_connection *sconn,time_t t) > int deadtime = lp_deadtime()*60; > pipes_struct *plist = NULL; > connection_struct *conn; >+ bool ret = true; > > if (deadtime <= 0) > deadtime = DEFAULT_SMBD_TIMEOUT; >@@ -209,6 +210,7 @@ bool conn_idle_all(struct smbd_server_connection *sconn,time_t t) > if (conn->lastused != conn->lastused_count) { > conn->lastused = t; > conn->lastused_count = t; >+ age = 0; > } > > /* close dirptrs on connections that are idle */ >@@ -217,7 +219,7 @@ bool conn_idle_all(struct smbd_server_connection *sconn,time_t t) > } > > if (conn->num_files_open > 0 || age < deadtime) { >- return False; >+ ret = false; > } > } > >@@ -229,11 +231,12 @@ bool conn_idle_all(struct smbd_server_connection *sconn,time_t t) > for (plist = get_first_internal_pipe(); plist; > plist = get_next_internal_pipe(plist)) { > if (num_pipe_handles(plist->pipe_handles) != 0) { >- return False; >+ ret = false; >+ break; > } > } > >- return True; >+ return ret; > } > > /**************************************************************************** >-- >1.7.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
vl
:
review+
Actions:
View
Attachments on
bug 7744
: 6028