Peter Memishian writes: > > > > One question I've long had on this code is why we use copymsg() rather > > > than dupmsg(). > > > > I _think_ the original rationale was that, since we're just going to > > do a copymsg() in ip_input->ip_fix_dbref anyway, we might as well skip > > the wasteful allocation/free of an mblk_t (merely to tell IP, "here; > > you do the copy") and skip right to the data copy that's going to > > happen anyway. > > Though ip_fix_dbref() is new with Xen, and that copymsg() code has been > there since GLDv3 integrated.
The issue is _far_ older than that. In version 1.347 of ip.c, the last before Fireengine integrated, ip_rput() checked db_ref and called copymsg() if greater than 1. The always-copy logic seems to have gone in with this change: D 1.134 97/05/06 10:44:17 rfox 340 338 00052/00041/09918 MRs: COMMENTS: bugs 4027163 & 4027160 & (4013442 IP illegally modifies data blocks) -- James Carlson, Solaris Networking <[EMAIL PROTECTED]> Sun Microsystems / 35 Network Drive 71.232W Vox +1 781 442 2084 MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677 _______________________________________________ networking-discuss mailing list [email protected]
