Procházet zdrojové kódy

FIX: CIFS - ignore fmShareDenyWrite (Linux)

Alexander Koblov před 4 roky
rodič
revize
c530826166

+ 2 - 0
components/doublecmd/dclinuxmagic.inc

@@ -88,4 +88,6 @@ const
   UDF_SUPER_MAGIC = $15013346;
   BALLOON_KVM_MAGIC = $13661366;
   ZSMALLOC_MAGIC = $58295829;
+{ manually added  }
+  CIFS_MAGIC_NUMBER = $ff534d42;
 

+ 9 - 0
components/doublecmd/dcunix.pas

@@ -194,6 +194,9 @@ var
   lockop: cint;
   lockres: cint;
   lockerr: cint;
+{$IFDEF LINUX}
+  Sbfs: TStatFS;
+{$ENDIF}
 begin
   Result:= Handle;
   case (Mode and $F0) of
@@ -205,6 +208,12 @@ begin
     else
       Exit;
   end;
+{$IFDEF LINUX}
+  if (fpFStatFS(Handle, @Sbfs) = 0) then
+  begin
+    if (Sbfs.fstype = CIFS_MAGIC_NUMBER) then Exit;
+  end;
+{$ENDIF}
   repeat
     lockres:= fpFlock(Handle, lockop);
   until (lockres = 0) or (fpgeterrno <> ESysEIntr);