• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/ap/gpl/samba-3.0.13/source/smbd/

Lines Matching defs:fsp

203 BOOL set_file_oplock(files_struct *fsp, int oplock_type)
205 if (koplocks && !koplocks->set_oplock(fsp, oplock_type))
208 fsp->oplock_type = oplock_type;
209 fsp->sent_oplock_break = NO_BREAK_SENT;
217 fsp->fsp_name, (unsigned int)fsp->dev, (double)fsp->inode, fsp->file_id,
218 (int)fsp->open_time.tv_sec, (int)fsp->open_time.tv_usec ));
227 void release_file_oplock(files_struct *fsp)
229 if ((fsp->oplock_type != NO_OPLOCK) && koplocks)
230 koplocks->release_oplock(fsp);
232 if (fsp->oplock_type == LEVEL_II_OPLOCK)
234 else if (fsp->oplock_type)
237 fsp->oplock_type = NO_OPLOCK;
238 fsp->sent_oplock_break = NO_BREAK_SENT;
240 flush_write_cache(fsp, OPLOCK_RELEASE_FLUSH);
247 static void downgrade_file_oplock(files_struct *fsp)
250 koplocks->release_oplock(fsp);
251 fsp->oplock_type = LEVEL_II_OPLOCK;
254 fsp->sent_oplock_break = NO_BREAK_SENT;
263 BOOL remove_oplock(files_struct *fsp, BOOL break_to_none)
265 SMB_DEV_T dev = fsp->dev;
266 SMB_INO_T inode = fsp->inode;
270 if (lock_share_entry_fsp(fsp) == False) {
272 fsp->fsp_name ));
276 if (fsp->sent_oplock_break == EXCLUSIVE_BREAK_SENT || break_to_none) {
281 if(remove_share_oplock(fsp)==False) {
283 dev = %x, inode = %.0f\n", fsp->fsp_name, fsp->fnum, (unsigned int)dev, (double)inode));
287 release_file_oplock(fsp);
292 if(downgrade_share_oplock(fsp)==False) {
294 dev = %x, inode = %.0f\n", fsp->fsp_name, fsp->fnum, (unsigned int)dev, (double)inode));
298 downgrade_file_oplock(fsp);
301 unlock_share_entry_fsp(fsp);
499 static void prepare_break_message(char *outbuf, files_struct *fsp, BOOL level2)
505 SSVAL(outbuf,smb_tid,fsp->conn->cnum);
510 SSVAL(outbuf,smb_vwv2,fsp->fnum);
548 files_struct *fsp = NULL;
563 fsp = file_find_dif(dev, inode, file_id);
565 if(fsp == NULL) {
586 if(fsp->oplock_type == NO_OPLOCK) {
588 dbgtext( "initial_break_processing: file %s ", fsp->fsp_name );
590 (unsigned int)dev, (double)inode, fsp->file_id );
596 return fsp;
604 static BOOL oplock_break_level2(files_struct *fsp, BOOL local_request)
608 SMB_DEV_T dev = fsp->dev;
609 SMB_INO_T inode = fsp->inode;
632 prepare_break_message( outbuf, fsp, False);
651 if(remove_share_oplock(fsp)==False) {
652 DEBUG(0,("oplock_break_level2: unable to remove level II oplock for file %s\n", fsp->fsp_name ));
655 release_file_oplock(fsp);
665 dbgtext( "dev = %x, inode = %.0f, file_id = %lu\n", (unsigned int)dev, (double)inode, fsp->file_id );
683 files_struct *fsp = NULL;
696 if((fsp = initial_break_processing(dev, inode, file_id)) == NULL)
703 if (LEVEL_II_OPLOCK_TYPE(fsp->oplock_type)) {
707 if (lock_share_entry_fsp(fsp) == False) {
708 DEBUG(0,("oplock_break: unable to lock share entry for file %s\n", fsp->fsp_name ));
711 ret = oplock_break_level2(fsp, local_request);
712 unlock_share_entry_fsp(fsp);
717 if (fsp->sent_oplock_break) {
720 dbgtext( "file %s ", fsp->fsp_name);
721 dbgtext( "(dev = %x, inode = %.0f, file_id = %lu)\n", (unsigned int)dev, (double)inode, fsp->file_id );
770 lp_level2_oplocks(SNUM(fsp->conn))) {
776 prepare_break_message( outbuf, fsp, using_levelII);
778 fsp->sent_oplock_break = using_levelII? LEVEL_II_BREAK_SENT:EXCLUSIVE_BREAK_SENT;
809 saved_fsp_conn = fsp->conn;
817 * code closes the file (as it often does), then the fsp pointer here
818 * points to free()'d memory. We *must* revalidate fsp each time
822 pstrcpy(file_name, fsp->fsp_name);
824 while((fsp = initial_break_processing(dev, inode, file_id)) &&
825 OPEN_FSP(fsp) && EXCLUSIVE_OPLOCK_TYPE(fsp->oplock_type)) {
871 dbgtext( "oplock_break failed for file %s ", fsp->fsp_name );
911 if(oplock_timeout && (fsp = initial_break_processing(dev, inode, file_id)) &&
912 OPEN_FSP(fsp) && EXCLUSIVE_OPLOCK_TYPE(fsp->oplock_type)) {
913 DEBUG(0,("oplock_break: client failure in oplock break in file %s\n", fsp->fsp_name));
914 remove_oplock(fsp,True);
976 files_struct *fsp = file_find_dif(dev, inode, file_id);
977 if (!fsp) {
979 dev = %x, inode = %.0f, file_id = %lu and no fsp found !\n",
981 smb_panic("request_oplock_break: no fsp found for our own oplock\n");
1127 BOOL attempt_close_oplocked_file(files_struct *fsp)
1129 DEBUG(5,("attempt_close_oplocked_file: checking file %s.\n", fsp->fsp_name));
1131 if (EXCLUSIVE_OPLOCK_TYPE(fsp->oplock_type) && !fsp->sent_oplock_break && (fsp->fd != -1)) {
1133 if (oplock_break(fsp->dev, fsp->inode, fsp->file_id, True)) {
1134 if(file_find_fsp(fsp) == NULL) /* Did the oplock break close the file ? */
1198 void release_level_2_oplocks_on_change(files_struct *fsp)
1213 if (!LEVEL_II_OPLOCK_TYPE(fsp->oplock_type))
1216 if (lock_share_entry_fsp(fsp) == False) {
1217 DEBUG(0,("release_level_2_oplocks_on_change: failed to lock share mode entry for file %s.\n", fsp->fsp_name ));
1220 num_share_modes = get_share_modes(fsp->conn, fsp->dev, fsp->inode, &share_list);
1246 unlock_share_entry(fsp->conn, fsp->dev, fsp->inode);
1262 unlock_share_entry(fsp->conn, fsp->dev, fsp->inode);
1283 unlock_share_entry_fsp(fsp);
1286 if (LEVEL_II_OPLOCK_TYPE(fsp->oplock_type)) {
1287 DEBUG(0,("release_level_2_oplocks_on_change: PANIC. File %s still has a level II oplock.\n", fsp->fsp_name));