struct scavenger_message {
struct file_id file_id;
uint64_t open_persistent_id;
+ uint32_t name_hash;
NTTIME until;
};
ZERO_STRUCT(msg);
msg.file_id = fsp->file_id;
msg.open_persistent_id = fsp->op->global->open_persistent_id;
+ msg.name_hash = fsp->name_hash;
msg.until = timeval_to_nttime(&until);
DEBUG(10, ("smbd: %s mark file %s as disconnected at %s with timeout "
struct cleanup_disconnected_state {
struct file_id fid;
+ uint32_t name_hash;
struct share_mode_lock *lck;
uint64_t open_persistent_id;
struct share_mode_entry e;
}
static bool share_mode_cleanup_disconnected(
- struct file_id fid, uint64_t open_persistent_id)
+ struct file_id fid, uint64_t open_persistent_id, uint32_t name_hash)
{
struct cleanup_disconnected_state state = {
.fid = fid,
- .open_persistent_id = open_persistent_id
+ .open_persistent_id = open_persistent_id,
+ .name_hash = name_hash,
};
bool ret = false;
TALLOC_CTX *frame = talloc_stackframe();
}
ok = share_mode_cleanup_disconnected(ctx->msg.file_id,
- ctx->msg.open_persistent_id);
+ ctx->msg.open_persistent_id,
+ ctx->msg.name_hash);
if (!ok) {
DBG_WARNING("Failed to cleanup share modes and byte range "
"locks for file %s open %"PRIu64"\n",