mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
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>
This commit is contained in:
parent
4d85f91a5b
commit
c938a1065f
@ -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)
|
||||
{
|
||||
|
@ -176,6 +176,7 @@ bool is_valid_share_mode_entry(const struct share_mode_entry *e);
|
||||
bool share_mode_stale_pid(struct share_mode_data *d, uint32_t idx);
|
||||
bool set_share_mode(struct share_mode_lock *lck, files_struct *fsp,
|
||||
uid_t uid, uint64_t mid, uint16 op_type);
|
||||
void remove_stale_share_mode_entries(struct share_mode_data *d);
|
||||
bool del_share_mode(struct share_mode_lock *lck, files_struct *fsp);
|
||||
bool mark_share_mode_disconnected(struct share_mode_lock *lck,
|
||||
struct files_struct *fsp);
|
||||
|
@ -171,26 +171,13 @@ static TDB_DATA unparse_share_modes(struct share_mode_data *d)
|
||||
{
|
||||
DATA_BLOB blob;
|
||||
enum ndr_err_code ndr_err;
|
||||
uint32_t i;
|
||||
|
||||
if (DEBUGLEVEL >= 10) {
|
||||
DEBUG(10, ("unparse_share_modes:\n"));
|
||||
NDR_PRINT_DEBUG(share_mode_data, d);
|
||||
}
|
||||
|
||||
i = 0;
|
||||
while (i < d->num_share_modes) {
|
||||
if (d->share_modes[i].stale) {
|
||||
/*
|
||||
* Remove the stale entries before storing
|
||||
*/
|
||||
struct share_mode_entry *m = d->share_modes;
|
||||
m[i] = m[d->num_share_modes-1];
|
||||
d->num_share_modes -= 1;
|
||||
} else {
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
remove_stale_share_mode_entries(d);
|
||||
|
||||
if (d->num_share_modes == 0) {
|
||||
DEBUG(10, ("No used share mode found\n"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user