[SCM] Samba Website Repository - branch master updated

2013-04-07 Thread Karolin Seeger
The branch, master has been updated
   via  0994f3f FAQ: Some updates.
  from  fc98b10 Add missing ) and try to make it a sentence

http://gitweb.samba.org/?p=samba-web.git;a=shortlog;h=master


- Log -
commit 0994f3f081e4f1a24abb9df9ef25bc7b87f23e51
Author: Karolin Seeger ksee...@samba.org
Date:   Sun Apr 7 21:00:35 2013 +0200

FAQ: Some updates.

Better reflect the current status of the release branches.
Thanks to Patrick Lauer patrick.la...@star-group.net for reporting!

Karolin

---

Summary of changes:
 docs/FAQ/index.html |   22 --
 1 files changed, 12 insertions(+), 10 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs/FAQ/index.html b/docs/FAQ/index.html
index 7e24088..b4cd809 100755
--- a/docs/FAQ/index.html
+++ b/docs/FAQ/index.html
@@ -68,24 +68,26 @@ to include as much good work as we can./p
 
 pThe Samba 3.2 branch is not supported any longer./p
 
-pThe Samba 3.3 branch is in the security fixes only mode./p
+pThe Samba 3.3 branch is not supported any longer./p
 
-pThe Samba 3.4 branch is in the bug fix mode. That means, there are bug fix
-releases on a as needed basis./p
+pThe Samba 3.4 branch is not supported any longer./p
 
-pThe current stable, production Samba server is the Samba 3.5 branch.  The
+pThe Samba 3.5 branch is in the security fixes only mode./p
+
+pThe Samba 3.6 branch is in the maintenance mode. That means, major issues
+will be fixed on a as needed basis./p
+
+pThe Samba 4.0 branch is in the bug fix mode. That means, bug fix releases
+are available approximately every six weeks (on a as needed basis)./p
+
+pThe current stable, production Samba server is the Samba 4.0 branch.  The
 most recent release is always the recommended version for production use.
 See the a href=/samba/historyrelease history/a page for an overview
 of current and past releases or the a
-href=http://wiki.samba.org/index.php/Samba3_Release_Planning;Release
+href=http://wiki.samba.org/index.php/Samba_Release_Planning;Release
 Planning Wiki page/a for more information on current and upcoming releases
 and schedules./p
 
-pSamba4 is a development branch that hasn't yet had an initial release.  If
-you are a developer wanting to play with the bleeding-edge of the work done on
-Samba, try a 
href=http://gitweb.samba.org/?p=samba.git;a=tree;h=v4-0-test;hb=v4-0-test;Samba4/a,
-which you'll obviously have to build yourself./p
-
 h3How do I verify a tarball with the GnuPG signature?/h3
 
 pUsing GnuPG, simply download the Samba source distribution, the tarball


-- 
Samba Website Repository


[SCM] Samba Shared Repository - branch v3-6-test updated

2013-04-07 Thread Karolin Seeger
The branch, v3-6-test has been updated
   via  ac66048 printing: update registry and publish in background
   via  c30c66d spoolss: only reload printers on pcap update message
   via  f4af7c4 printing: add sighup and conf change handlers
   via  23ac828 printing: move pcap change notifier to bg process
   via  d7286bb smbd: fix cups printcap cache updates on startup
  from  93bca18 Make sure that we only propogate the INHERITED flag when we 
are allowed to.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -
commit ac6604868d1325dd4c872dc0f6ab056d10ebaecf
Author: David Disseldorp dd...@samba.org
Date:   Fri Mar 15 16:54:06 2013 +0100

printing: update registry and publish in background

Currently all smbd processes unnecessarily access each printer registry
TDB entry following printcap cache reload.
This change moves responsibility for this to the background print queue
process.

This and the last four commits address bug 9650: New or delete cups
printerqueues are not recognized by the samba.

commit c30c66d8b5b4ebbde1b148c51310e336f29ca04e
Author: David Disseldorp dd...@samba.org
Date:   Fri Feb 15 12:17:53 2013 +0100

spoolss: only reload printers on pcap update message

Printcap cache updates are the responsibility of the background
printing process, which after doing so broadcasts a MSG_PRINTER_PCAP
message. Spoolssd should only reload printers after receiving such a
message.

commit f4af7c4d4cafe15c437742d450c7753a8b6d8422
Author: David Disseldorp dd...@samba.org
Date:   Thu Feb 14 17:02:08 2013 +0100

printing: add sighup and conf change handlers

The background printing process is now responsible for all printcap
cache updates, which should be done on SIGHUP and configuration change.

commit 23ac828ba93e2ffc60ced19656af9609dcc1b2ab
Author: David Disseldorp dd...@samba.org
Date:   Thu Feb 14 14:42:21 2013 +0100

printing: move pcap change notifier to bg process

The background print queue process is responsible for printcap cache
updates, and should be the only process to send notifications.

commit d7286bb6520ebe03355e98e3311e1d79e2746791
Author: David Disseldorp dd...@samba.org
Date:   Tue Feb 12 18:57:53 2013 +0100

smbd: fix cups printcap cache updates on startup

On startup the parent smbd process currently calls pcap_cache_reload(),
which is done immediately before the background queue process is forked.

pcap_cache_reload() is asynchronous with cups, in that it forks a
separate process to obtain the printer listing. The cache_fd_event
print_cups.c global variable is used to track when a cups printer
listing is in progress.

cache_fd_event is set when the background queue process is forked, due
to smbd's pcap_cache_reload() call immediately prior. As a result, the
background queue process assumes an existing pcap_cache_reload() call is
indefinitely outstanding, causing the printcap cache to remain stale
thereafter.

---

Summary of changes:
 source3/printing/printing.c  |   77 +++-
 source3/printing/spoolssd.c  |   18 -
 source3/smbd/process.c   |   53 ---
 source3/smbd/proto.h |7 +---
 source3/smbd/server.c|   77 ++--
 source3/smbd/server_reload.c |   80 +
 6 files changed, 207 insertions(+), 105 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index a5b36c7..16821ae 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -1656,6 +1656,24 @@ static void add_child_pid(pid_t pid)
 num_children += 1;
 }
 
+/
+ Notify smbds of new printcap data
+**/
+static void reload_pcap_change_notify(struct tevent_context *ev,
+ struct messaging_context *msg_ctx)
+{
+   /*
+* Reload the printers first in the background process so that
+* newly added printers get default values created in the registry.
+*
+* This will block the process for some time (~1 sec per printer), but
+* it doesn't block smbd's servering clients.
+*/
+   reload_printers_full(ev, msg_ctx);
+
+   message_send_all(msg_ctx, MSG_PRINTER_PCAP, NULL, 0, NULL);
+}
+
 static bool printer_housekeeping_fn(const struct timeval *now,
void *private_data)
 {
@@ -1678,6 +1696,43 @@ static bool printer_housekeeping_fn(const struct timeval 
*now,
return true;
 }
 
+static void 

[SCM] Samba Shared Repository - branch v3-6-test updated

2013-04-07 Thread Karolin Seeger
The branch, v3-6-test has been updated
   via  64fb72c wkssvc: Fix bug 9727, NULL pointer dereference
  from  ac66048 printing: update registry and publish in background

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -
commit 64fb72ccb26b8e48c50407bc58618499ab2f5603
Author: Volker Lendecke v...@samba.org
Date:   Mon Mar 18 09:36:17 2013 +0100

wkssvc: Fix bug 9727, NULL pointer dereference

Signed-off-by: Volker Lendecke v...@samba.org
Reviewed-by: Michael Adam ob...@samba.org

Autobuild-User(master): Michael Adam ob...@samba.org
Autobuild-Date(master): Mon Mar 18 11:39:27 CET 2013 on sn-devel-104
(cherry picked from commit 05a7a10c88be99d864eacd6f9d37a340022f01f6)

---

Summary of changes:
 source3/rpc_server/wkssvc/srv_wkssvc_nt.c |8 ++--
 1 files changed, 6 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_server/wkssvc/srv_wkssvc_nt.c 
b/source3/rpc_server/wkssvc/srv_wkssvc_nt.c
index 1764941..2d3ec1e 100644
--- a/source3/rpc_server/wkssvc/srv_wkssvc_nt.c
+++ b/source3/rpc_server/wkssvc/srv_wkssvc_nt.c
@@ -579,7 +579,9 @@ WERROR _wkssvc_NetWkstaEnumUsers(struct pipes_struct *p,
}
r-out.info-level = r-in.info-level;
*r-out.entries_read = r-out.info-ctr.user0-entries_read;
-   *r-out.resume_handle = 0;
+   if (r-out.resume_handle != NULL) {
+   *r-out.resume_handle = 0;
+   }
break;
case 1:
r-out.info-ctr.user1 = create_enum_users1(p-mem_ctx);
@@ -588,7 +590,9 @@ WERROR _wkssvc_NetWkstaEnumUsers(struct pipes_struct *p,
}
r-out.info-level = r-in.info-level;
*r-out.entries_read = r-out.info-ctr.user1-entries_read;
-   *r-out.resume_handle = 0;
+   if (r-out.resume_handle != NULL) {
+   *r-out.resume_handle = 0;
+   }
break;
default:
return WERR_UNKNOWN_LEVEL;


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-6-test updated

2013-04-07 Thread Karolin Seeger
The branch, v3-6-test has been updated
   via  57db335 Final fix for bug #9130 - Certain xattrs cause Windows 
error 0x800700FF
   via  7950384 Ensure we don't return uninitialized memory in the pad 
bytes.
   via  8794bb9 Fix bug #9130 - Certain xattrs cause Windows error 
0x800700FF
   via  c668853 Change estimate_ea_size() to correctly estimate the EA size 
over SMB2.
   via  4565442 Modify fill_ea_chained_buffer() to be able to do size 
calculation only, no marshalling.
  from  64fb72c wkssvc: Fix bug 9727, NULL pointer dereference

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -
commit 57db33599589b06a60cb7cbb454f87bf40c542e0
Author: Jeremy Allison j...@samba.org
Date:   Wed Mar 27 11:54:34 2013 -0700

Final fix for bug #9130 - Certain xattrs cause Windows error 0x800700FF

The spec lies when it says that NextEntryOffset is the only value
considered when finding the next EA. We were adding 4 more extra
pad bytes than needed (i.e. if the next entry already was on a 4
byte boundary, then we were adding 4 additional pad bytes).

Signed-off-by: Jeremy Allison j...@samba.org

The last 5 patches address bug #9130 - Certain xattrs cause Windows error
0x800700FF.

commit 79503841059e945e6b14fa8c92375041c5390764
Author: Jeremy Allison j...@samba.org
Date:   Tue Mar 26 17:07:55 2013 -0700

Ensure we don't return uninitialized memory in the pad bytes.

Signed-off-by: Jeremy Allison j...@samba.org

commit 8794bb97495a7de4bf98f497abdf713be68db7a9
Author: Jeremy Allison j...@samba.org
Date:   Tue Mar 26 16:55:03 2013 -0700

Fix bug #9130 - Certain xattrs cause Windows error 0x800700FF

Ensure we never return any zero-length EA's.

Signed-off-by: Jeremy Allison j...@samba.org

commit c6688532c8a01836f29a38806ced62b34617222d
Author: Jeremy Allison j...@samba.org
Date:   Tue Mar 26 16:53:45 2013 -0700

Change estimate_ea_size() to correctly estimate the EA size over SMB2.

Signed-off-by: Jeremy Allison j...@samba.org

commit 45654424a5c686a43cd9edb8026c0d0424260fd9
Author: Jeremy Allison j...@samba.org
Date:   Tue Mar 26 16:50:13 2013 -0700

Modify fill_ea_chained_buffer() to be able to do size calculation only, no 
marshalling.

Signed-off-by: Jeremy Allison j...@samba.org

---

Summary of changes:
 source3/smbd/trans2.c |   61 +---
 1 files changed, 52 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index df4fa64..01b0130 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -328,6 +328,15 @@ static struct ea_list *get_ea_list_from_file(TALLOC_CTX 
*mem_ctx, connection_str
return NULL;
}
 
+   if (listp-ea.value.length == 0) {
+   /*
+* We can never return a zero length EA.
+* Windows reports the EA's as corrupted.
+*/
+   TALLOC_FREE(listp);
+   continue;
+   }
+
push_ascii_fstring(dos_ea_name, listp-ea.name);
 
*pea_total_len +=
@@ -411,6 +420,7 @@ static NTSTATUS fill_ea_chained_buffer(TALLOC_CTX *mem_ctx,
 {
uint8_t *p = (uint8_t *)pdata;
uint8_t *last_start = NULL;
+   bool store_data = (pdata != NULL);
 
*ret_data_size = 0;
 
@@ -422,8 +432,9 @@ static NTSTATUS fill_ea_chained_buffer(TALLOC_CTX *mem_ctx,
size_t dos_namelen;
fstring dos_ea_name;
size_t this_size;
+   size_t pad = 0;
 
-   if (last_start) {
+   if (last_start  store_data) {
SIVAL(last_start, 0, PTR_DIFF(p, last_start));
}
last_start = p;
@@ -440,7 +451,7 @@ static NTSTATUS fill_ea_chained_buffer(TALLOC_CTX *mem_ctx,
this_size = 0x08 + dos_namelen + 1 + ea_list-ea.value.length;
 
if (ea_list-next) {
-   size_t pad = 4 - (this_size % 4);
+   pad = (4 - (this_size % 4)) % 4;
this_size += pad;
}
 
@@ -449,12 +460,19 @@ static NTSTATUS fill_ea_chained_buffer(TALLOC_CTX 
*mem_ctx,
}
 
/* We know we have room. */
-   SIVAL(p, 0x00, 0); /* next offset */
-   SCVAL(p, 0x04, ea_list-ea.flags);
-   SCVAL(p, 0x05, dos_namelen);
-   SSVAL(p, 0x06, ea_list-ea.value.length);
-   fstrcpy((char *)(p+0x08), dos_ea_name);
-   memcpy(p + 0x08 + dos_namelen + 1, ea_list-ea.value.data, 
ea_list-ea.value.length);
+   if (store_data) {
+

[SCM] Samba Shared Repository - branch v3-6-test updated

2013-04-07 Thread Karolin Seeger
The branch, v3-6-test has been updated
   via  1df6178 Fix bug #9733 - smbcontrol close-share is not working.
  from  57db335 Final fix for bug #9130 - Certain xattrs cause Windows 
error 0x800700FF

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -
commit 1df61789ca466923a7a252244888bd1b7cfbc79e
Author: Jeremy Allison j...@samba.org
Date:   Thu Mar 21 13:59:20 2013 -0700

Fix bug #9733 - smbcontrol close-share is not working.

As part of forcibly disconnecting a client from a share,
smbd must atomically call reload_services() to ensure that
the entry in the ServicePtrs[] array corresponding to
that share is removed if the share was removed from
the smb.conf or registry entries.

Otherwise the ServicePtrs[] array entry for the share
remains active and the client races to auto-reconnect to
the share before a second message to reload the smb.conf
file can be sent.

This has to be done as part of the close-share message
processing, as removing the share from the smb.conf file
first, then telling the smbd to reload followed by the
forcible disconnect message doesn't work as in this
sequence of events when the reload message is received
the client is still connected to the share, so the
ServicePtrs[] entry is still left active.

The forcible-disconnect + service reload has to be done
together as an atomic operation in order for this to work.

Signed-off-by: Jeremy Allison j...@samba.org

---

Summary of changes:
 source3/smbd/conn.c |7 ++-
 1 files changed, 6 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c
index 8a96e88..05e692f 100644
--- a/source3/smbd/conn.c
+++ b/source3/smbd/conn.c
@@ -481,7 +481,7 @@ void msg_force_tdis(struct messaging_context *msg,
if (strcmp(sharename, *) == 0) {
DEBUG(1,(Forcing close of all shares\n));
conn_close_all(sconn);
-   return;
+   goto done;
}
 
if (sconn-using_smb2) {
@@ -512,4 +512,9 @@ void msg_force_tdis(struct messaging_context *msg,
}
}
}
+
+ done:
+
+   change_to_root_user();
+   reload_services(msg, -1, true);
 }


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-6-test updated

2013-04-07 Thread Karolin Seeger
The branch, v3-6-test has been updated
   via  01192ce BUG 9735: Fix winbind seperator in upn to username 
conversion.
  from  1df6178 Fix bug #9733 - smbcontrol close-share is not working.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -
commit 01192ce939cf77737de8efe7072dded5c3e1da94
Author: Andreas Schneider a...@samba.org
Date:   Fri Mar 22 14:15:57 2013 +0100

BUG 9735: Fix winbind seperator in upn to username conversion.

Reviewed-by: Günther Deschner g...@samba.org
Signed-off-by: Andreas Schneider a...@samba.org

---

Summary of changes:
 nsswitch/pam_winbind.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/nsswitch/pam_winbind.c b/nsswitch/pam_winbind.c
index 3257101..d126494 100644
--- a/nsswitch/pam_winbind.c
+++ b/nsswitch/pam_winbind.c
@@ -2448,7 +2448,7 @@ static char* winbind_upn_to_username(struct pwb_context 
*ctx,
return NULL;
}
 
-   return talloc_asprintf(ctx, %s\\%s, domain, name);
+   return talloc_asprintf(ctx, %s%c%s, domain, sep, name);
 }
 
 static int _pam_delete_cred(pam_handle_t *pamh, int flags,


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-6-test updated

2013-04-07 Thread Karolin Seeger
The branch, v3-6-test has been updated
   via  565d140 smbd: Tune dir a bit.
  from  01192ce BUG 9735: Fix winbind seperator in upn to username 
conversion.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -
commit 565d1409c7c424fbbeed1e98b042d3970b0acf73
Author: Volker Lendecke v...@samba.org
Date:   Thu Mar 21 22:00:06 2013 +0100

smbd: Tune dir a bit.

for i in $(seq 1 2) ; do echo dir ; done | smbclient //127.0.0.1/tmp -U%

without and with this patch:

$ time bin/smbd -d0 -i
smbd version 4.1.0pre1-GIT-1f139ae started.
Copyright Andrew Tridgell and the Samba Team 1992-2013
Beendet

real0m28.342s
user0m10.249s
sys 0m10.513s

$ time bin/smbd -d0 -i
smbd version 4.1.0pre1-GIT-1f139ae started.
Copyright Andrew Tridgell and the Samba Team 1992-2013
Beendet

real0m27.348s
user0m9.089s
sys 0m10.853s

The real timestamp is irrelevant, this also contains the time between
starting smbd and the smbclient job. It's the user time. The result that 
this
patch improves the time spent in user space by 10% is consistent.

Signed-off-by: Volker Lendecke v...@samba.org
Reviewed-by: Jeremy Allison j...@samba.org

Fix bug #9736 - Change to smbd/dir.c code gives significant performance
increases on large directory listings.

---

Summary of changes:
 source3/smbd/dir.c |   25 +++--
 1 files changed, 19 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index 92be816..f7bc325 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -941,12 +941,14 @@ bool smbd_dirptr_get_entry(TALLOC_CTX *ctx,
   long *_prev_offset)
 {
connection_struct *conn = dirptr-conn;
-   bool needslash;
+   size_t slashlen;
+   size_t pathlen;
 
*_smb_fname = NULL;
*_mode = 0;
 
-   needslash = ( dirptr-path[strlen(dirptr-path) -1] != '/');
+   pathlen = strlen(dirptr-path);
+   slashlen = ( dirptr-path[pathlen-1] != '/') ? 1 : 0;
 
while (true) {
long cur_offset;
@@ -990,16 +992,27 @@ bool smbd_dirptr_get_entry(TALLOC_CTX *ctx,
continue;
}
 
-   pathreal = talloc_asprintf(ctx, %s%s%s,
-  dirptr-path,
-  needslash?/:,
-  dname);
+   /*
+* This used to be
+* pathreal = talloc_asprintf(ctx, %s%s%s, dirptr-path,
+*needslash?/:, dname);
+* but this was measurably slower than doing the memcpy.
+*/
+
+   pathreal = talloc_array(
+   ctx, char,
+   pathlen + slashlen + talloc_get_size(dname));
if (!pathreal) {
TALLOC_FREE(dname);
TALLOC_FREE(fname);
return false;
}
 
+   memcpy(pathreal, dirptr-path, pathlen);
+   pathreal[pathlen] = '/';
+   memcpy(pathreal + slashlen + pathlen, dname,
+  talloc_get_size(dname));
+
/* Create smb_fname with NULL stream_name. */
ZERO_STRUCT(smb_fname);
smb_fname.base_name = pathreal;


-- 
Samba Shared Repository


[SCM] Samba Shared Repository - branch v3-6-test updated

2013-04-07 Thread Karolin Seeger
The branch, v3-6-test has been updated
   via  60a2fb5 Optimization suggested by Volker. Don't do a stat system 
call on normal read path.
  from  565d140 smbd: Tune dir a bit.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -
commit 60a2fb5ddac02376d82f323f2acb1211bb7929e3
Author: Jeremy Allison j...@samba.org
Date:   Mon Mar 25 09:54:50 2013 -0700

Optimization suggested by Volker. Don't do a stat system call on normal 
read path.

Only do it if we need it in the sendfile() path.

Signed-off-by: Jeremy Allison j...@samba.org
Reviewed-by: Volker Lendecke v...@samba.org

Autobuild-User(master): Volker Lendecke v...@samba.org
Autobuild-Date(master): Thu Mar 28 17:51:22 CET 2013 on sn-devel-104

Fix bug #9748 - Remove unneeded fstat system call from hot read path.

---

Summary of changes:
 source3/smbd/reply.c |   30 +++---
 1 files changed, 15 insertions(+), 15 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index ffe128a..31f4e2f 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -3529,11 +3529,6 @@ static void send_file_readX(connection_struct *conn, 
struct smb_request *req,
struct lock_struct lock;
int saved_errno = 0;
 
-   if(fsp_stat(fsp) == -1) {
-   reply_nterror(req, map_nt_error_from_unix(errno));
-   return;
-   }
-
init_strict_lock_struct(fsp, (uint64_t)req-smbpid,
(uint64_t)startpos, (uint64_t)smb_maxcnt, READ_LOCK,
lock);
@@ -3543,16 +3538,6 @@ static void send_file_readX(connection_struct *conn, 
struct smb_request *req,
return;
}
 
-   if (!S_ISREG(fsp-fsp_name-st.st_ex_mode) ||
-   (startpos  fsp-fsp_name-st.st_ex_size)
-   || (smb_maxcnt  (fsp-fsp_name-st.st_ex_size - 
startpos))) {
-   /*
-* We already know that we would do a short read, so don't
-* try the sendfile() path.
-*/
-   goto nosendfile_read;
-   }
-
/*
 * We can only use sendfile on a non-chained packet
 * but we can use on a non-oplocked file. tridge proved this
@@ -3566,6 +3551,21 @@ static void send_file_readX(connection_struct *conn, 
struct smb_request *req,
uint8 headerbuf[smb_size + 12 * 2];
DATA_BLOB header;
 
+   if(fsp_stat(fsp) == -1) {
+   reply_nterror(req, map_nt_error_from_unix(errno));
+   goto strict_unlock;
+   }
+
+   if (!S_ISREG(fsp-fsp_name-st.st_ex_mode) ||
+   (startpos  fsp-fsp_name-st.st_ex_size) ||
+   (smb_maxcnt  (fsp-fsp_name-st.st_ex_size - startpos))) {
+   /*
+* We already know that we would do a short read, so 
don't
+* try the sendfile() path.
+*/
+   goto nosendfile_read;
+   }
+
/*
 * Set up the packet header before send. We
 * assume here the sendfile will work (get the


-- 
Samba Shared Repository


[SCM] CTDB repository - branch master updated - ctdb-2.1-47-g1c7adbc

2013-04-07 Thread Amitay Isaacs
The branch, master has been updated
   via  1c7adbccc69ac276d2b957ad16c3802fdb8868ca (commit)
   via  fe8c4880b371492a38554868d4ca10918c54e412 (commit)
   via  524ec206e6a5e8b11723f4d8d1251ed5d84063b0 (commit)
   via  74acc2c568300ef42740cf11299a1b2507047f60 (commit)
   via  f7f8bde2376f8180a0dca6d7b8d7d2a4a12f4bd8 (commit)
   via  c137531fae8f7f6392746ce1b9ac6f219775fc29 (commit)
   via  bf7296ce9b98563bcb8426cd035dbeab6d884f59 (commit)
   via  20be1f991dd75c2333c9ec9db226432a819f57ba (commit)
   via  4e1ec7412866f2d31c41de1bec0fbf788c03051b (commit)
  from  85b777196289646ca37e06ebbf1f7a684d0aabc5 (commit)

http://gitweb.samba.org/?p=ctdb.git;a=shortlog;h=master


- Log -
commit 1c7adbccc69ac276d2b957ad16c3802fdb8868ca
Author: Amitay Isaacs ami...@gmail.com
Date:   Fri Apr 5 13:34:06 2013 +1100

recoverd/takeover: Use IP-node mapping info from nodes hosting that IP

When collating IP information for IP layout, only trust the nodes that are
hosting an IP, to have correct information about that IP.  Ignore what all 
the
other nodes think.

Signed-off-by: Amitay Isaacs ami...@gmail.com

commit fe8c4880b371492a38554868d4ca10918c54e412
Author: Amitay Isaacs ami...@gmail.com
Date:   Wed Apr 3 14:44:08 2013 +1100

statd-callout: Make sure statd callout script always runs as root

In RHEL 6+, rpc.statd runs as rpcuser instead of root as on RHEL 5. This
prevents CTDB tool commands talking to daemon since rpcuser cannot access
CTDB socket.

Signed-off-by: Amitay Isaacs ami...@gmail.com
Pair-Programmed-With: Martin Schwenke mar...@meltin.net

commit 524ec206e6a5e8b11723f4d8d1251ed5d84063b0
Author: Amitay Isaacs ami...@gmail.com
Date:   Mon Mar 18 13:45:08 2013 +1100

client: Set the socket non-blocking only after connect succeeds

If the socket is set non-blocking before connect, then we should catch
EAGAIN errors and retry. Instead of adding a random number of retries,
better to wait for connect to succeed and then set the socket to
non-blocking.

Signed-off-by: Amitay Isaacs ami...@gmail.com

commit 74acc2c568300ef42740cf11299a1b2507047f60
Author: Amitay Isaacs ami...@gmail.com
Date:   Fri Apr 5 13:19:34 2013 +1100

Revert client: handle transient connection errors

This reverts commit dc0c58547cd4b20a8e2cd21f3c8363f34fd03e75.

There is a simpler solution that retrying random number of times. Do not set
socket non-blocking till connect succeeds.

commit f7f8bde2376f8180a0dca6d7b8d7d2a4a12f4bd8
Author: Volker Lendecke v...@samba.org
Date:   Wed Apr 3 14:59:21 2013 +0200

common/messaging: Use the jenkins hash in ctdb_message

This give a better hash distribution

commit c137531fae8f7f6392746ce1b9ac6f219775fc29
Author: Volker Lendecke v...@samba.org
Date:   Fri Apr 5 13:11:31 2013 +1100

common/messaging: use tdb_parse_record in message_list_db_fetch

This avoids malloc/free in a hot code path.

commit bf7296ce9b98563bcb8426cd035dbeab6d884f59
Author: Amitay Isaacs ami...@gmail.com
Date:   Wed Apr 3 15:08:14 2013 +1100

common/messaging: Abstract db related operations inside db functions

This simplifies the use of message indexdb API and abstracts tdb related 
code
inside the API.

Signed-off-by: Amitay Isaacs ami...@gmail.com

commit 20be1f991dd75c2333c9ec9db226432a819f57ba
Author: Amitay Isaacs ami...@gmail.com
Date:   Tue Apr 2 16:57:51 2013 +1100

common/messaging: Don't forget to free the result returned by tdb_fetch()

This fixes a memory leak in the messaging code.

Signed-off-by: Amitay Isaacs ami...@gmail.com

commit 4e1ec7412866f2d31c41de1bec0fbf788c03051b
Author: Amitay Isaacs ami...@gmail.com
Date:   Tue Apr 2 12:08:39 2013 +1100

common/messaging: Free message list header if all message handlers are freed

This makes sure that even if the srvids are not deregistered, the header
structure is freed when the last message handler has been freed as a result 
of
client going away.

Signed-off-by: Amitay Isaacs ami...@gmail.com

---

Summary of changes:
 Makefile.in|1 +
 client/ctdb_client.c   |   39 +++-
 common/ctdb_message.c  |  110 +---
 config/ctdb.sudoers|3 +
 config/statd-callout   |3 +
 libctdb/ctdb.c |6 +-
 packaging/RPM/ctdb.spec.in |4 +-
 server/ctdb_takeover.c |8 +++-
 8 files changed, 80 insertions(+), 94 deletions(-)
 create mode 100644 config/ctdb.sudoers


Changeset truncated at 500 lines:

diff --git a/Makefile.in b/Makefile.in
index 762f788..9511e90 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -330,6 +330,7 @@ install: all manpages $(PMDA_INSTALL)
${INSTALLCMD} -m 644 

[SCM] CTDB repository - branch 1.2.40 updated - ctdb-1.2.60-10-gf7a21af

2013-04-07 Thread Amitay Isaacs
The branch, 1.2.40 has been updated
   via  f7a21af8adc65c72326c0f955e5e1712467951ad (commit)
   via  1d7db16870c3e166f00669eb46c57fac765d0e1e (commit)
   via  34da547bd3534386e83056bc82b1ee7d9b2148f8 (commit)
   via  b9541b26ed16a141b6cf608feabb29409ebb7ef2 (commit)
   via  17e11263cae9602da04d9af69cad0083bc29476d (commit)
   via  184318ce3ec607af53c86ddf8e0e8f6d77313ea4 (commit)
   via  09f82b58b2ab367a1c4f5b2bc79ceb63ff66a3c4 (commit)
   via  12090590085c5a3e3b895896ea2668cb592a7e28 (commit)
   via  2ac73c1e00734aef5da8bc03704c0fa4b0956011 (commit)
   via  e1ba96d63b103bde841b634dc9c4c0eedabe72a9 (commit)
  from  0372e73b27b0193240aa0a020c8ab9f79abd262f (commit)

http://gitweb.samba.org/?p=ctdb.git;a=shortlog;h=1.2.40


- Log -
commit f7a21af8adc65c72326c0f955e5e1712467951ad
Author: Amitay Isaacs ami...@gmail.com
Date:   Fri Apr 5 16:26:24 2013 +1100

New version 1.2.61

Signed-off-by: Amitay Isaacs ami...@gmail.com

commit 1d7db16870c3e166f00669eb46c57fac765d0e1e
Author: Amitay Isaacs ami...@gmail.com
Date:   Fri Apr 5 15:31:26 2013 +1100

lockwait: Pass CTDB daemon PID on command line

In lockwait helper process we cannot rely on getppid() to find the pid
of CTDB daemon as CTDB daemon can go away before the helper executes. In
which case, ctdb helper process will hang around forever.

Signed-off-by: Amitay Isaacs ami...@gmail.com

commit 34da547bd3534386e83056bc82b1ee7d9b2148f8
Author: Amitay Isaacs ami...@gmail.com
Date:   Fri Apr 5 13:34:06 2013 +1100

recoverd/takeover: Use IP-node mapping info from nodes hosting that IP

When collating IP information for IP layout, only trust the nodes that are
hosting an IP, to have correct information about that IP.  Ignore what all 
the
other nodes think.

Signed-off-by: Amitay Isaacs ami...@gmail.com
(cherry picked from commit 1c7adbccc69ac276d2b957ad16c3802fdb8868ca)

commit b9541b26ed16a141b6cf608feabb29409ebb7ef2
Author: Amitay Isaacs ami...@gmail.com
Date:   Wed Apr 3 14:44:08 2013 +1100

statd-callout: Make sure statd callout script always runs as root

In RHEL 6+, rpc.statd runs as rpcuser instead of root as on RHEL 5. This
prevents CTDB tool commands talking to daemon since rpcuser cannot access
CTDB socket.

Signed-off-by: Amitay Isaacs ami...@gmail.com
Pair-Programmed-With: Martin Schwenke mar...@meltin.net
(cherry picked from commit fe8c4880b371492a38554868d4ca10918c54e412)

Conflicts:
packaging/RPM/ctdb.spec.in

commit 17e11263cae9602da04d9af69cad0083bc29476d
Author: Amitay Isaacs ami...@gmail.com
Date:   Mon Mar 18 13:45:08 2013 +1100

client: Set the socket non-blocking only after connect succeeds

If the socket is set non-blocking before connect, then we should catch
EAGAIN errors and retry. Instead of adding a random number of retries,
better to wait for connect to succeed and then set the socket to
non-blocking.

Signed-off-by: Amitay Isaacs ami...@gmail.com
(cherry picked from commit 524ec206e6a5e8b11723f4d8d1251ed5d84063b0)

commit 184318ce3ec607af53c86ddf8e0e8f6d77313ea4
Author: Volker Lendecke v...@samba.org
Date:   Wed Apr 3 14:59:21 2013 +0200

common/messaging: Use the jenkins hash in ctdb_message

This give a better hash distribution
(cherry picked from commit f7f8bde2376f8180a0dca6d7b8d7d2a4a12f4bd8)

commit 09f82b58b2ab367a1c4f5b2bc79ceb63ff66a3c4
Author: Volker Lendecke v...@samba.org
Date:   Fri Apr 5 13:11:31 2013 +1100

common/messaging: use tdb_parse_record in message_list_db_fetch

This avoids malloc/free in a hot code path.
(cherry picked from commit c137531fae8f7f6392746ce1b9ac6f219775fc29)

commit 12090590085c5a3e3b895896ea2668cb592a7e28
Author: Amitay Isaacs ami...@gmail.com
Date:   Wed Apr 3 15:08:14 2013 +1100

common/messaging: Abstract db related operations inside db functions

This simplifies the use of message indexdb API and abstracts tdb related 
code
inside the API.

Signed-off-by: Amitay Isaacs ami...@gmail.com
(cherry picked from commit bf7296ce9b98563bcb8426cd035dbeab6d884f59)

commit 2ac73c1e00734aef5da8bc03704c0fa4b0956011
Author: Amitay Isaacs ami...@gmail.com
Date:   Tue Apr 2 16:57:51 2013 +1100

common/messaging: Don't forget to free the result returned by tdb_fetch()

This fixes a memory leak in the messaging code.

Signed-off-by: Amitay Isaacs ami...@gmail.com
(cherry picked from commit 20be1f991dd75c2333c9ec9db226432a819f57ba)

commit e1ba96d63b103bde841b634dc9c4c0eedabe72a9
Author: Amitay Isaacs ami...@gmail.com
Date:   Tue Apr 2 12:08:39 2013 +1100

common/messaging: Free message list header if all message handlers are freed

This makes sure that even if the srvids are not deregistered, the header
structure is freed when the last message 

[SCM] CTDB repository - annotated tag ctdb-1.2.61 created - ctdb-1.2.61

2013-04-07 Thread Amitay Isaacs
The annotated tag, ctdb-1.2.61 has been created
at  4083383045259c4b3d3b015bd0fb390cdae2d7d1 (tag)
   tagging  f7a21af8adc65c72326c0f955e5e1712467951ad (commit)
  replaces  ctdb-1.2.60
 tagged by  Amitay Isaacs
on  Mon Apr 8 14:42:44 2013 +1000

- Log -
new version 1.2.61

Amitay Isaacs (8):
  common/messaging: Free message list header if all message handlers are 
freed
  common/messaging: Don't forget to free the result returned by tdb_fetch()
  common/messaging: Abstract db related operations inside db functions
  client: Set the socket non-blocking only after connect succeeds
  statd-callout: Make sure statd callout script always runs as root
  recoverd/takeover: Use IP-node mapping info from nodes hosting that IP
  lockwait: Pass CTDB daemon PID on command line
  New version 1.2.61

Volker Lendecke (2):
  common/messaging: use tdb_parse_record in message_list_db_fetch
  common/messaging: Use the jenkins hash in ctdb_message

---


-- 
CTDB repository