[linux-cifs-client] Re: Re: [2.6 patch] unexport uts_sem

Steve French (smfltc) smfltc at us.ibm.com
Wed May 21 14:48:00 GMT 2008


Christoph Hellwig wrote:
> On Tue, May 20, 2008 at 02:38:02PM -0400, Frank Ch. Eigler wrote:
>   
>> Sorry, I misspoke - this check is intended not to cross-check
>> kernel-devel and the kernel itself, but the debuginfo or similar data
>> that is given to describe target of a systemtap script.  I guess for
>> new enough kernels we'll just do that using buildid hash codes.
>>
>> By the way, there do appear to be a few suspect in-tree users of
>> utsname() without uts_sem locking 
>
>   
>> cifs/connect.c,
>>     
>
> This one is quite fishy. Not sure what it needs the name for but the
> kernel utsname is probably a bad choise.  And yes, this one actually
> is racy because the host name can change.
>   

CIFS in fs/cifs/sess.c uses utsname()->version because the cifs protocol 
requires that the server and client report their native operating system 
version during session setup (not just their "network operating system" 
or network file system version).   The other uses of utsname()->version 
in connect.c will be removed (they are used in an older implementation 
of session_setup which is disabled by default).

CIFS in fs/cifs/connect.c uses utsname()->nodename to get the default 
hostname during mount.   For RFC1001 connections and for NTLMSSP, if no 
RFC1001 name for the client is supplied on the mount, the TCP host name 
must be used to identify the client in those packets.



More information about the linux-cifs-client mailing list