Re: SMB2 DELETE vs UNLINK

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



FILE_DISPOSITION_DO_NOT_DELETE  0x00000000 Specifies the system should
not delete a file.
FILE_DISPOSITION_DELETE  0x00000001 Specifies the system should delete a file.
FILE_DISPOSITION_POSIX_SEMANTICS  0x00000002 Specifies the system
should perform a POSIX-style delete.
FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK  0x00000004 Specifies the
system should force an image section check.
FILE_DISPOSITION_ON_CLOSE  0x00000008Specifies if the system sets or
clears the on-close state.
FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE  0x00000010 Allows
read-only files to be deleted.

These are interesting flags, but are we certain they are passed
through over SMB3.1.1 by current Windows?  It is possible that they
are filtered and thus local only

Have you tried setting them remotely over an SMB3.1.1 mount to Windows server?

On Tue, Oct 8, 2024 at 1:18 PM Pali Rohár <pali@xxxxxxxxxx> wrote:
>
> On Tuesday 08 October 2024 11:40:06 Ralph Boehme wrote:
> > On 10/6/24 12:31 PM, Pali Rohár wrote:
> > > But starting with Windows 10, version 1709, there is support also
> > > for UNLINK operation, via class 64 (FileDispositionInformationEx)
> > > [1] where is FILE_DISPOSITION_POSIX_SEMANTICS flag [2] which does
> > > UNLINK after CLOSE and let file content usable for all other
> > > processes. Internally Windows NT kernel moves this file on NTFS from
> > > its directory into some hidden are. Which is de-facto same as what
> > > is POSIX unlink. There is also class 65 (FileRenameInformationEx)
> > > which is allows to issue POSIX rename (unlink the target if it
> > > exists).
> >
> > interesting. Thanks for pointing these out!
> >
> > > What do you think about using & implementing this functionality for
> > > the Linux unlink operation? As the class numbers are already
> > > reserved and documented, I think that it could make sense to use
> > > them also over SMB on POSIX systems.
> >
> > for SMB3 POSIX this will be the behaviour on POSIX handles so we don't
> > need an on the wire change. This is part of what will become POSIX-FSA.
> >
> > > Also there is another flag
> > > FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE which can be useful for
> > > unlink. It allows to unlink also file which has read-only attribute
> > > set. So no need to do that racy (unset-readonly, set-delete-pending,
> > > set-read-only) compound on files with more file hardlinks.
> > >
> > > I think that this is something which SMB3 POSIX extensions can use
> > > and do not have to invent new extensions for the same functionality.
> >
> > same here (taking note to remember to add this to the POSIX-FSA and
> > check Samba behaviour).
> >
> > -slow
>
> So the behavior when the POSIX extension is active would be same as if
> every DELETE_ON_CLOSE and every DELETE_PENDING=true requests would set
> those new NT flags FILE_DISPOSITION_POSIX_SEMANTICS and
> FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE?
>


-- 
Thanks,

Steve





[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux