struct {
bool kernel_share_modes_taken : 1;
bool update_write_time_triggered : 1;
+ bool update_write_time_on_close : 1;
} fsp_flags;
struct tevent_timer *update_write_time_event;
- bool update_write_time_on_close;
struct timespec close_write_time;
bool write_time_forced;
fsp_str_dbg(fsp)));
ts = nt_time_to_full_timespec(lck->data->changed_write_time);
set_close_write_time(fsp, ts);
- } else if (fsp->update_write_time_on_close) {
+ } else if (fsp->fsp_flags.update_write_time_on_close) {
/* Someone had a pending write. */
if (is_omit_timespec(&fsp->close_write_time)) {
DEBUG(10,("close_remove_share_mode: update to current time "
/*
* Don't try to update the write time when we delete the file
*/
- fsp->update_write_time_on_close = false;
+ fsp->fsp_flags.update_write_time_on_close = false;
got_tokens = get_delete_on_close_token(lck, fsp->name_hash,
&del_nt_token, &del_token);
return;
}
fsp->write_time_forced = false;
- fsp->update_write_time_on_close = true;
+ fsp->fsp_flags.update_write_time_on_close = true;
fsp->close_write_time = ts;
}
init_smb_file_time(&ft);
- if (!fsp->update_write_time_on_close) {
+ if (!(fsp->fsp_flags.update_write_time_on_close)) {
return NT_STATUS_OK;
}
cookie.position_information = fsp->fh->position_information;
cookie.update_write_time_triggered =
fsp->fsp_flags.update_write_time_triggered;
- cookie.update_write_time_on_close = fsp->update_write_time_on_close;
+ cookie.update_write_time_on_close =
+ fsp->fsp_flags.update_write_time_on_close;
cookie.write_time_forced = fsp->write_time_forced;
cookie.close_write_time = full_timespec_to_nt_time(
&fsp->close_write_time);
if (fsp->write_time_forced) {
ft.mtime = nt_time_to_full_timespec(
lck->data->changed_write_time);
- } else if (fsp->update_write_time_on_close) {
+ } else if (fsp->fsp_flags.update_write_time_on_close) {
if (is_omit_timespec(&fsp->close_write_time)) {
ft.mtime = timespec_current();
} else {
cookie.position_information = fsp->fh->position_information;
cookie.update_write_time_triggered =
fsp->fsp_flags.update_write_time_triggered;
- cookie.update_write_time_on_close = fsp->update_write_time_on_close;
+ cookie.update_write_time_on_close =
+ fsp->fsp_flags.update_write_time_on_close;
cookie.write_time_forced = fsp->write_time_forced;
cookie.close_write_time = full_timespec_to_nt_time(
&fsp->close_write_time);
fsp->fh->position_information = cookie.position_information;
fsp->fsp_flags.update_write_time_triggered =
cookie.update_write_time_triggered;
- fsp->update_write_time_on_close = cookie.update_write_time_on_close;
+ fsp->fsp_flags.update_write_time_on_close =
+ cookie.update_write_time_on_close;
fsp->write_time_forced = cookie.write_time_forced;
fsp->close_write_time = nt_time_to_full_timespec(
cookie.close_write_time);
/* We need to remember someone did a write
* and update to current time on close. */
- fsp->update_write_time_on_close = true;
+ fsp->fsp_flags.update_write_time_on_close = true;
if (fsp->fsp_flags.update_write_time_triggered) {
/*
/* After an immediate update, reset the trigger. */
fsp->fsp_flags.update_write_time_triggered = true;
- fsp->update_write_time_on_close = false;
+ fsp->fsp_flags.update_write_time_on_close = false;
ft.mtime = timespec_current();
* We're setting the time explicitly for UNIX.
* Cancel any pending changes over all handles.
*/
- all_fsps->update_write_time_on_close = false;
+ all_fsps->fsp_flags.update_write_time_on_close = false;
TALLOC_FREE(all_fsps->update_write_time_event);
}