Re: [PATCH] cifs: Close deferred files that may be open via hard links

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

 



> From: Tom Talpey <tom@xxxxxxxxxx>
> Sent: Wednesday, May 17, 2023 2:24 PM
> To: Ralph Boehme <slow@xxxxxxxxx>; Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>; linux-cifs@xxxxxxxxxxxxxxx <linux-cifs@xxxxxxxxxxxxxxx>
> Cc: Steve French <sfrench@xxxxxxxxx>; Paulo Alcantara <pc@xxxxxx>; Ronnie Sahlberg <lsahlber@xxxxxxxxxx>; Shyam Prasad N <sprasad@xxxxxxxxxxxxx>; Rohith Surabattula <rohiths@xxxxxxxxxxxxx>
> Subject: Re: [PATCH] cifs: Close deferred files that may be open via hard links 
>  
> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments unless you have verified the sender and know the content is safe.
> 
> On 5/17/2023 6:50 AM, Ralph Boehme wrote:
> > On 5/17/23 10:27, Ross Lagerwall wrote:
> >> In any case, I have attached a packet trace from running the above
> >> Python reproducer.
> > 
> > afaict the STATUS_INVALID_PARAMETER comes from the lease code as you're 
> > passing the same lease key for the open on the link which is illegal afair.
> > 
> > Can you retry the experiment without requesting a lease or ensuring the 
> > second open on the link uses a different lease key?
> 
> Indeed, the same lease key is coming in both opens, first in
> packet 3 where it opens "test", and again in packet 18 where
> it opens the link "new". So it's triggering this assertion in
> MS-SMB2 section 3.3.5.9.11
> 
> > The server MUST attempt to locate a Lease by performing a lookup in the LeaseTable.LeaseList
> > using the LeaseKey in the SMB2_CREATE_REQUEST_LEASE_V2 as the lookup key. If a lease is found,
> > Lease.FileDeleteOnClose is FALSE, and Lease.Filename does not match the file name for the
> > incoming request, the request MUST be failed with STATUS_INVALID_PARAMETER
> 
> Steve/Rohith, is this new behavior in the client code?
> 
> Tom.

It looks like smb2_get_lease_key() returns the lease key stored in the
inode, which clearly breaks that assertion when hard links are
involved.

I can confirm that when the lease keys are forced to be different, the
test does not fail.

Ross



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

  Powered by Linux