summaryrefslogtreecommitdiffstats
path: root/source3/locking/locking.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2013-09-02 11:37:57 +0000
committerMichael Adam <obnox@samba.org>2013-10-15 23:46:11 +0200
commitc938a1065fed2a001da69b6a6d826ef31be75003 (patch)
tree2c4d7ee16998fa96b61630b7731cdd3ad41dacc1 /source3/locking/locking.c
parent4d85f91a5b309fac76ed8b0ed2a18132c18b2659 (diff)
downloadsamba-c938a1065fed2a001da69b6a6d826ef31be75003.tar.gz
samba-c938a1065fed2a001da69b6a6d826ef31be75003.tar.xz
samba-c938a1065fed2a001da69b6a6d826ef31be75003.zip
smbd: Factor out remove_stale_share_mode_entries
Will be used in the next commit Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'source3/locking/locking.c')
-rw-r--r--source3/locking/locking.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/source3/locking/locking.c b/source3/locking/locking.c
index 7ac04a45e3..b5d4f24f34 100644
--- a/source3/locking/locking.c
+++ b/source3/locking/locking.c
@@ -693,6 +693,22 @@ bool share_mode_stale_pid(struct share_mode_data *d, uint32_t idx)
return true;
}
+void remove_stale_share_mode_entries(struct share_mode_data *d)
+{
+ uint32_t i;
+
+ i = 0;
+ while (i < d->num_share_modes) {
+ if (d->share_modes[i].stale) {
+ struct share_mode_entry *m = d->share_modes;
+ m[i] = m[d->num_share_modes-1];
+ d->num_share_modes -= 1;
+ } else {
+ i += 1;
+ }
+ }
+}
+
bool set_share_mode(struct share_mode_lock *lck, files_struct *fsp,
uid_t uid, uint64_t mid, uint16 op_type)
{