bool update_write_time_triggered : 1;
bool update_write_time_on_close : 1;
bool write_time_forced : 1;
+ bool can_lock : 1;
} fsp_flags;
struct tevent_timer *update_write_time_event;
struct lock_struct last_lock_failure;
int current_lock_count; /* Count the number of outstanding locks and pending locks. */
- bool can_lock;
bool can_read;
bool can_write;
bool modified;
{
struct byte_range_lock *br_lck = NULL;
- if (!fsp->can_lock) {
+ if (!fsp->fsp_flags.can_lock) {
return fsp->is_directory ? NT_STATUS_INVALID_DEVICE_REQUEST : NT_STATUS_INVALID_HANDLE;
}
return NT_STATUS_OK;
}
- if (!fsp->can_lock) {
+ if (!fsp->fsp_flags.can_lock) {
if (fsp->is_directory) {
return NT_STATUS_INVALID_DEVICE_REQUEST;
}
bool ok = False;
struct byte_range_lock *br_lck = NULL;
- if (!fsp->can_lock) {
+ if (!fsp->fsp_flags.can_lock) {
return fsp->is_directory ? NT_STATUS_INVALID_DEVICE_REQUEST : NT_STATUS_INVALID_HANDLE;
}
fsp->fh->fd = fd;
fsp->vuid = current_vuid;
- fsp->can_lock = false;
+ fsp->fsp_flags.can_lock = false;
fsp->can_read = false;
fsp->access_mask = FILE_GENERIC_WRITE;
fsp->can_write = true;
/*
* For normal files, can_lock == !is_directory
*/
- fsp->can_lock = true;
+ fsp->fsp_flags.can_lock = true;
/*
* We do not support aio write behind for smb2
*/
fsp->fh->fd = -1;
fsp->vuid = current_vuid;
fsp->fh->pos = -1;
- fsp->can_lock = False; /* Should this be true ? - No, JRA */
+ fsp->fsp_flags.can_lock = false; /* Should this be true ? - No, JRA */
fsp->access_mask = access_mask;
status = fsp_set_smb_fname(fsp, smb_fname);
if (!NT_STATUS_IS_OK(status)) {
to->open_time = from->open_time;
to->access_mask = access_mask;
to->oplock_type = from->oplock_type;
- to->can_lock = from->can_lock;
+ to->fsp_flags.can_lock = from->fsp_flags.can_lock;
to->can_read = ((access_mask & FILE_READ_DATA) != 0);
to->can_write =
CAN_WRITE(from->conn) &&
fsp->file_id = vfs_file_id_from_sbuf(conn, &smb_fname->st);
fsp->vuid = req ? req->vuid : UID_FIELD_INVALID;
fsp->file_pid = req ? req->smbpid : 0;
- fsp->can_lock = True;
+ fsp->fsp_flags.can_lock = true;
fsp->can_read = ((access_mask & FILE_READ_DATA) != 0);
fsp->can_write =
CAN_WRITE(conn) &&
fsp->file_id = vfs_file_id_from_sbuf(conn, &smb_dname->st);
fsp->vuid = req ? req->vuid : UID_FIELD_INVALID;
fsp->file_pid = req ? req->smbpid : 0;
- fsp->can_lock = False;
+ fsp->fsp_flags.can_lock = false;
fsp->can_read = False;
fsp->can_write = False;
fsp->conn = conn;
fsp->fh->fd = -1;
fsp->vuid = smb_req->vuid;
- fsp->can_lock = false;
+ fsp->fsp_flags.can_lock = false;
fsp->access_mask = FILE_READ_DATA | FILE_WRITE_DATA;
smb_fname = synthetic_smb_fname(talloc_tos(), name, NULL, NULL, 0);
fsp->file_id = vfs_file_id_from_sbuf(conn, &smb_fname->st);
fsp->vuid = UID_FIELD_INVALID;
fsp->file_pid = 0;
- fsp->can_lock = True;
+ fsp->fsp_flags.can_lock = true;
fsp->can_read = True;
fsp->can_write = True;
fsp->print_file = NULL;
fsp->file_id = vfs_file_id_from_sbuf(vfs->conn, &smb_fname->st);
fsp->vuid = UID_FIELD_INVALID;
fsp->file_pid = 0;
- fsp->can_lock = True;
+ fsp->fsp_flags.can_lock = true;
fsp->can_read = True;
fsp->can_write =
CAN_WRITE(vfs->conn);
fsp->file_id = vfs_file_id_from_sbuf(vfs->conn, &smb_fname->st);
fsp->vuid = UID_FIELD_INVALID;
fsp->file_pid = 0;
- fsp->can_lock = True;
+ fsp->fsp_flags.can_lock = true;
fsp->can_read = True;
fsp->can_write = True;
fsp->print_file = NULL;