diff options
author | Jeremy Allison <jra@samba.org> | 2006-07-28 22:42:39 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:38:24 -0500 |
commit | a093a76dc14303fd1c42fb2c0b87faf3748815e4 (patch) | |
tree | 6fbf13185fc81ebaa429e9e47a7724109b2f3983 /source3/locking | |
parent | 321b0a3a63b40f779c71d476fdc5a840d2ced665 (diff) | |
download | samba-a093a76dc14303fd1c42fb2c0b87faf3748815e4.tar.gz samba-a093a76dc14303fd1c42fb2c0b87faf3748815e4.tar.bz2 samba-a093a76dc14303fd1c42fb2c0b87faf3748815e4.zip |
r17293: After the results from the cluster tests in Germany,
fix the messaging code to call the efficient calls :
save_re_uid()
set_effective_uid(0);
messaging_op
restore_re_uid();
instead of using heavyweight become_root()/unbecome_root()
pairs around all messaging code. Fixup the messaging
code to ensure sec_init() is called (only once) so that non-root
processes still work when sending messages.
This is a lighter weight solution to become_root()/unbecome_root()
(which swaps all the supplemental groups) and should be more
efficient. I will migrate all server code over to using this
(a similar technique should be used in the passdb backend
where needed).
Jeremy.
(This used to be commit 4ace291278d9a44f5c577bdd3b282c1231e543df)
Diffstat (limited to 'source3/locking')
-rw-r--r-- | source3/locking/brlock.c | 6 | ||||
-rw-r--r-- | source3/locking/locking.c | 2 |
2 files changed, 0 insertions, 8 deletions
diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c index 031836ecdf..4a36d938ad 100644 --- a/source3/locking/brlock.c +++ b/source3/locking/brlock.c @@ -816,11 +816,9 @@ static BOOL brl_unlock_windows(struct byte_range_lock *br_lck, const struct lock DEBUG(10,("brl_unlock: sending unlock message to pid %s\n", procid_str_static(&pend_lock->context.pid ))); - become_root(); message_send_pid(pend_lock->context.pid, MSG_SMB_UNLOCK, NULL, 0, True); - unbecome_root(); } } @@ -985,11 +983,9 @@ static BOOL brl_unlock_posix(struct byte_range_lock *br_lck, const struct lock_s DEBUG(10,("brl_unlock: sending unlock message to pid %s\n", procid_str_static(&pend_lock->context.pid ))); - become_root(); message_send_pid(pend_lock->context.pid, MSG_SMB_UNLOCK, NULL, 0, True); - unbecome_root(); } } @@ -1306,11 +1302,9 @@ void brl_close_fnum(struct byte_range_lock *br_lck) /* We could send specific lock info here... */ if (brl_pending_overlap(lock, pend_lock)) { - become_root(); message_send_pid(pend_lock->context.pid, MSG_SMB_UNLOCK, NULL, 0, True); - unbecome_root(); } } diff --git a/source3/locking/locking.c b/source3/locking/locking.c index 3cbf318007..3879d40cba 100644 --- a/source3/locking/locking.c +++ b/source3/locking/locking.c @@ -851,10 +851,8 @@ BOOL rename_share_filename(struct share_mode_lock *lck, (unsigned int)lck->dev, (double)lck->ino, lck->servicepath, lck->filename )); - become_root(); message_send_pid(se->pid, MSG_SMB_FILE_RENAME, frm, msg_len, True); - unbecome_root(); } return True; |