Re: [PATCH] cifs: create a helper to find a writeable handle by path name

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

 



чт, 29 авг. 2019 г. в 15:26, Ronnie Sahlberg <lsahlber@xxxxxxxxxx>:
>
> rename() takes a path for old_file and in SMB2 we used to just create
> a compound for create(old_path)/rename/close().
> If we already have a writable handle we can avoid the create() and close()
> altogether and just use the existing handle.
>
> For this situation, as we avoid doing the create()
> we also avoid triggering an oplock break for the existing handle.

Hi Ronnie,

Another SMB2_CREATE from the same client shouldn't cause a lease break
if we ask for a lease with the same lease key. The lease key is
associated with the inode, all opens that can cause a break should ask
for the lease with the lease key.

Currently smb2_compound_op doesn't ask for a lease: see at the
beginning of the function:

oplock = SMB2_OPLOCK_LEVEL_NONE

What we need to do is to change this to SMB2_OPLOCK_LEVEL_BATCH for
operation that modifies the file like SET_EOF and SET_INFO. In this
case the lower layer will map it to the appropriate lease state. Note
that parms->fid->lease_key should be populated.

--
Best regards,
Pavel Shilovsky




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

  Powered by Linux