mysterious setting of B_DIRECT?
- Reply: Konstantin Belousov : "Re: mysterious setting of B_DIRECT?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 26 Apr 2024 02:49:23 UTC
Hi, This week I have been doing active testing as a part of an IETF bakeathon for NFSv4. During the week I had a NFSv4 client crash. On the surface, it is straightforward, in that it called ncl_doio_directwrite() and the field called b_caller1 was NULL. Now, here's the weird part... ncl_doio_directwrite() should never be called because B_DIRECT should never be set. (The only place B_DIRECT gets set in the code is never currently executed.) I have a patch that clears out the "never to be executed" code and this seems to avoid the patch, since with the patch, ncl_doio_directwrite() no longer exists. What I cannot figure out is how B_DIRECT got set? I can note that UFS was under heavy load when the client crashed, but I cannot see how a UFS "struct buf" would become a NFS "struct buf" without b_flags being set to 0. Anyone have any ideas? rick