[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <581217.1716475935@warthog.procyon.org.uk>
Date: Thu, 23 May 2024 15:52:15 +0100
From: David Howells <dhowells@...hat.com>
To: Tom Talpey <tom@...pey.com>
Cc: dhowells@...hat.com, Steve French <sfrench@...ba.org>,
Paulo Alcantara <pc@...guebit.com>,
Shyam Prasad N <nspmangalore@...il.com>,
Rohith Surabattula <rohiths.msft@...il.com>,
Jeff Layton <jlayton@...nel.org>, linux-cifs@...r.kernel.org,
netfs@...ts.linux.dev, linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH] cifs: Fix credit handling in cifs_io_subrequest cleanup
Tom Talpey <tom@...pey.com> wrote:
> From a protocol standpoint it's correct to reserve the credits while the
> operation is in flight. But from a code standpoint it seems risky to
> stop accounting for them. What if the operation is canceled, or times
> out?
No idea, TBH - SMB credits wrangling isn't my area of expertise. Note the
patch is superfluous as smb2_readv/writev_callback() clear the credits at the
end; worse, it's actually wrong as we're not allowed to touch [rw]data after
calling ->async_readv()/->async_writev().
> I'd quibble with the assertion that the server will "give us new credits
> in the response". The number of granted credits is always the server's
> decision, not guaranteed by the protocol (except for certain edge
> conditions).
It does give us new credits in the response, doesn't it? In
hdr.CreditRequest - though I suppose this could be zero.
> I guess I'd suggest a deeper review by someone familiar with the
> mechanics of fs/smb/client credit accounting. It might be ok!
I've given Steve a patch to try and find where the double add occurs.
David
Powered by blists - more mailing lists