summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2012-08-03 16:38:38 +0200
committerStefan Metzmacher <metze@samba.org>2012-09-08 03:39:06 +0200
commit42afa596d5e58875944c5429fac4866a5614ebca (patch)
tree46604748949135231503c28df896bfc1f6f77cbb /source3/smbd
parentf0a5b791ae4e64e42270edad7a961aa046efbaac (diff)
downloadsamba-42afa596d5e58875944c5429fac4866a5614ebca.tar.gz
samba-42afa596d5e58875944c5429fac4866a5614ebca.tar.bz2
samba-42afa596d5e58875944c5429fac4866a5614ebca.zip
s3:smbd: also close durable file handles in a tdis
Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/files.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/smbd/files.c b/source3/smbd/files.c
index 0550b31155..ef229a4098 100644
--- a/source3/smbd/files.c
+++ b/source3/smbd/files.c
@@ -151,9 +151,16 @@ void file_close_conn(connection_struct *conn)
for (fsp=conn->sconn->files; fsp; fsp=next) {
next = fsp->next;
- if (fsp->conn == conn) {
- close_file(NULL, fsp, SHUTDOWN_CLOSE);
+ if (fsp->conn != conn) {
+ continue;
+ }
+ if (fsp->op != NULL && fsp->op->global->durable) {
+ /*
+ * A tree disconnect closes a durable handle
+ */
+ fsp->op->global->durable = false;
}
+ close_file(NULL, fsp, SHUTDOWN_CLOSE);
}
}