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;
+}

Reply via email to