Steve, Namjae, Here is a start of work to share common definitions between the cifs client and the server. The patches build ontop of Namjaes patch to rework the smb2_hdr structure that he recently sent to the list. It creates a new shared smb2pdu.h file and starts moving definitions over. The two copies of smb2pdu.h, in cifs/ and ksmbd/ have diverged a bit so some things are being renamed in these patches. NegotiateProtocol is in two separate patches since for this funciton the changes are a little more than just renames, for example I change several arrays at the tail of structures from [number] to simply [] so that needs careful review. Two patches are for cifs and cifs_common and two patches are for ksmbd. The ksmbd patches depend on the cifs patches so the cifs patches have to go in first.