[stgt] [osd-dev] [PATCH 10/15 ver2] tgt: os.h: getnameinfo() is different on none-Linux systems

FUJITA Tomonori fujita.tomonori at lab.ntt.co.jp
Wed Mar 11 19:23:34 CET 2009

On Wed, 11 Mar 2009 16:33:01 +0200
Boaz Harrosh <bharrosh at panasas.com> wrote:

> FUJITA Tomonori wrote:
> > On Tue, 03 Mar 2009 12:15:34 +0200
> > Boaz Harrosh <bharrosh at panasas.com> wrote:
> > 
> >>>  			blen = sizeof(buf);
> >>>  
> >>>  			slen = sizeof(ss);
> >>> -			conn->tp->ep_getsockname(conn, (struct sockaddr *) &ss,
> >>> -						 &slen);
> >>> +			ret = conn->tp->ep_getsockname(conn,
> >>> +						(struct sockaddr *) &ss, &slen);
> >> TOMO if you are already experimenting, it might work if &slen is left
> >> untouched and is passed as returned from getsockname to getnameinfo.
> >>
> >> This might work on both Linux and BSD.
> > 
> > Yes, that's the proper way to handle this issue.
> > 
> >> But then we must make sure
> >> that all transports set &slen to something good.
> > 
> > All the transports must make sure that ep_getsockname should set slen
> > because getsockname does for tcp. iser sets it up properly.
> > 
> > So far looks like this patchset adds wrong workarounds instead doing
> > the right things. Sigh, I have to investigate all the patchset in a
> > line-by-line manner.
> This is not fair. And is not the proper working procedure. 
> These problems existed before any BSD code. The BSD code did not add
> anything to the mess.

You are completely wrong.

If the main code has a problem, you should fix it. You should not add
a workaround for the BSD code to avoid the problem.

Think about Linux kernel development; for example, vfs has a bug and
you develop your file system. You need to fix the vfs bug. You should
not add the workaround to your file system code to avoid the bug.

> If you want to fix the Linux code then it should be done separately,
> by itself. In a different patchset. Which only fixes the Linux code.
> This way if you have a regression you can go back to something that
> worked before. Then if the Linux is fixed in a way compatible to BSD,
> the compatibility layer can be removed by a latter patch.
> Never MIX code changes with compatibility changes, because you cannot
> separate the two if something goes wrong.
> So what? Are you going to wait for all the Linux hacks and bugs fixed until
> you put the BSD code? this is not the way to work!

This is the way to work. You should fix the root problems.

> Mean while I'm using my tree, and so will my users

Drop such attitude; my code works for my users. I don't care about
your users. I care about only tgt.
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

More information about the stgt mailing list