Hello, this may be a question a thousand times answered but I did not find it ... On a local linux filesystem like ext2/3 one can rename a file to an existing, already open file. But this doesn't work on a cifs-mounted samba-share - or do I miss something in the samba configuration. Attached ist a small test-program that does essentially the same as kmail does when it creates a mail-index file (and crashes ...) Here you can see the versions (from the clients /proc/fs/cifs/): Display Internal CIFS Data Structures for Debugging --------------------------------------------------- CIFS Version 1.52 Active VFS Requests: 0 Servers: 1) Name: 192.168.32.12 ?Domain: KMUX Mounts: 1 OS: Unix ? ? ? ? NOS: Samba 3.0.24 ? ? ? Capability: 0x80f3fd ? ? ? ? SMB session status: 1 ? TCP status: 1 ? ? ? ? Local Users To Server: 1 SecMode: 0x3 Req On Wire: 0 MIDs: Shares: 1) \\192.168.32.12\hugo.tester Uses: 1 Type: NTFS DevInfo: 0x0 Attributes: 0x2b PathComponentMax: 255 Status: 1 type: 0 TIA -- Wilhelm
Wilhelm Meier wrote:> <snip> > On a local linux filesystem like ext2/3 one can rename a file to an > existing, already open file. > > But this doesn't work on a cifs-mounted samba-share > <snip> >The reason this works with ext2 is that as long as you hold an open file descriptor a deleted file is still accessible (rename is essentially a delete and then a move). While it might be theoretically possible for this to work unix to unix, Windows doesn't deal with deleted files the same way (it prevents you from deleting files as long as they are open), and so it's quite possible that SMB/CIFS doesn't understand the concept of having a deleted file open. *Michael Heydon - IT Administrator * michaelh@jaswin.com.au <mailto:michaelh@jaswin.com.au>
Apparently Analagous Threads
- Samba mounted home shares will break many applications
- missing directories
- Using Access Control Lists with SMB2/SMB3 Mounts on Linux Clients
- Using Access Control Lists with SMB2/SMB3 Mounts on Linux Clients
- User executional bit set when creating/modifying file on linux server from linux client