On Thu, Jan 12, 2012 at 02:15:59PM -0500, Trond Myklebust wrote: > On Thu, 2012-01-12 at 11:21 -0500, J. Bruce Fields wrote: > > On Thu, Jan 12, 2012 at 09:47:22AM +0300, Dan Carpenter wrote: > > > Sparse complains because arg_ch->rs_length is declared as network > > > endian but we're treating it as CPU endian. > > > > This looks like it would actually change behavior on a little endian > > architecture, so how did this work before? > > > > >From some quick grepping, I see assignments both of the form > > > > ...rs_length = ntohl(...) > > > > and > > > > ...rs_length = htonl(...) > > > > but only see one declaration for a field named rs_length. > > > > So my best guess would be that the code is ugly but working as is, and > > needs cleanup by someone who knows how this field was intended to be > > used. > > It looks to me as if rs_handle and rs_offset are being similarly abused. > Basically, we need a serious clean up in svc_rdma_marshall.c to separate > out those variables that are in XDR-encoded form and those that are not. (Here everybody takes one step back and pretends to be engrossed in some other thread.) --b. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html