for (fsp=Files;fsp;fsp=fsp->next,count++) {
if (fsp->open &&
+ fsp->fd_ptr != NULL &&
fsp->fd_ptr->dev == dev &&
fsp->fd_ptr->inode == inode &&
(tval ? (fsp->open_time.tv_sec == tval->tv_sec) : True ) &&
for (fsp=Files;fsp;fsp=fsp->next) {
if (fsp->open &&
+ fsp->fd_ptr != NULL &&
fsp->fd_ptr->dev == dev &&
fsp->fd_ptr->inode == inode )
return fsp;
for (fsp = start_fsp->next;fsp;fsp=fsp->next) {
if (fsp->open &&
+ fsp->fd_ptr != NULL &&
fsp->fd_ptr->dev == start_fsp->fd_ptr->dev &&
fsp->fd_ptr->inode == start_fsp->fd_ptr->inode )
return fsp;
for (fsp=Files;fsp;fsp=next) {
next=fsp->next;
- if (fsp->open && conn == fsp->conn) {
+ if (fsp->open && (conn == fsp->conn) && (fsp->fd_ptr != NULL)) {
sync_file(conn,fsp);
}
}
string_free(&fsp->fsp_name);
- if (fsp->fd_ptr && fsp->fd_ptr->ref_count == 0) {
+ if ((fsp->fd_ptr != NULL) && fsp->fd_ptr->ref_count == 0) {
fd_ptr_free(fsp->fd_ptr);
}
DEBUG(5,("attempt_close_oplocked_file: checking file %s.\n", fsp->fsp_name));
- if (fsp->open && fsp->granted_oplock && !fsp->sent_oplock_break) {
+ if (fsp->open && fsp->granted_oplock && !fsp->sent_oplock_break && (fsp->fd_ptr != NULL)) {
/* Try and break the oplock. */
file_fd_struct *fd_ptr = fsp->fd_ptr;
(iterate_fsp->share_mode | DELETE_ON_CLOSE_FLAG) :
(iterate_fsp->share_mode & ~DELETE_ON_CLOSE_FLAG) );
- DEBUG(10,("call_trans2setfilepathinfo: Changing share mode for fnum %d, file %s\
+ DEBUG(10,("call_trans2setfilepathinfo: Changing share mode for fnum %d, file %s \
dev = %x, inode = %.0f from %x to %x\n",
iterate_fsp->fnum, iterate_fsp->fsp_name, (unsigned int)dev,
(double)inode, iterate_fsp->share_mode, new_share_mode ));
* counted struct. Delete when the last reference
* goes away.
*/
- fsp->fd_ptr->delete_on_close = delete_on_close;
+ fsp->fd_ptr->delete_on_close = delete_on_close;
- unlock_share_entry(fsp->conn, dev, inode, token);
+ unlock_share_entry(fsp->conn, dev, inode, token);
+
+ DEBUG(10, ("call_trans2setfilepathinfo: %s delete on close flag for fnum = %d, file %s\n",
+ delete_on_close ? "Added" : "Removed", fsp->fnum, fsp->fsp_name ));
} /* end if(delete_on_close && !GET_DELETE_ON_CLOSE_FLAG(fsp->share_mode)) */
} /* end if lp_share_modes() */