Author: vlendec Date: 2006-05-17 15:01:57 +0000 (Wed, 17 May 2006) New Revision: 15660
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15660 Log: Without this when using smbcquotas I get close fd=-1 fnum=4321 (numopen=1) close_file: Could not get share mode lock for file $Extend/$Quota:$Q:$INDEX_ALLOCATION unix_error_packet: error string = Das Argument ist ung?\195?\188ltig error packet at smbd/reply.c(3325) cmd=4 (SMBclose) NT_STATUS_INVALID_HANDLE so a fake file needs special close handling I think. Jeremy, can you check this? Thanks, Volker Modified: branches/SAMBA_3_0/source/smbd/close.c branches/SAMBA_3_0/source/smbd/fake_file.c trunk/source/smbd/close.c trunk/source/smbd/fake_file.c Changeset: Modified: branches/SAMBA_3_0/source/smbd/close.c =================================================================== --- branches/SAMBA_3_0/source/smbd/close.c 2006-05-17 13:58:53 UTC (rev 15659) +++ branches/SAMBA_3_0/source/smbd/close.c 2006-05-17 15:01:57 UTC (rev 15660) @@ -447,6 +447,8 @@ return close_directory(fsp, close_type); else if (fsp->is_stat) return close_stat(fsp); + else if (fsp->fake_file_handle != NULL) + return close_fake_file(fsp); else return close_normal_file(fsp, close_type); } Modified: branches/SAMBA_3_0/source/smbd/fake_file.c =================================================================== --- branches/SAMBA_3_0/source/smbd/fake_file.c 2006-05-17 13:58:53 UTC (rev 15659) +++ branches/SAMBA_3_0/source/smbd/fake_file.c 2006-05-17 15:01:57 UTC (rev 15660) @@ -156,3 +156,9 @@ talloc_destroy((*fh)->mem_ctx); (*fh) = NULL; } + +int close_fake_file(files_struct *fsp) +{ + file_free(fsp); + return 0; +} Modified: trunk/source/smbd/close.c =================================================================== --- trunk/source/smbd/close.c 2006-05-17 13:58:53 UTC (rev 15659) +++ trunk/source/smbd/close.c 2006-05-17 15:01:57 UTC (rev 15660) @@ -447,6 +447,8 @@ return close_directory(fsp, close_type); else if (fsp->is_stat) return close_stat(fsp); + else if (fsp->fake_file_handle != NULL) + return close_fake_file(fsp); else return close_normal_file(fsp, close_type); } Modified: trunk/source/smbd/fake_file.c =================================================================== --- trunk/source/smbd/fake_file.c 2006-05-17 13:58:53 UTC (rev 15659) +++ trunk/source/smbd/fake_file.c 2006-05-17 15:01:57 UTC (rev 15660) @@ -158,3 +158,9 @@ talloc_destroy((*fh)->mem_ctx); (*fh) = NULL; } + +int close_fake_file(files_struct *fsp) +{ + file_free(fsp); + return 0; +}