-
-
usr/src/cmd/mdb/intel/amd64/libfksmbsrv/Makefile (Diff revision 1) You're right this is a hack, you should do it some other way. Note that we define things in Makefile.master such that you can easily prepend (in theory)
-
-
-
usr/src/cmd/smbsrv/fksmbd/.dbxrc (Diff revision 1) Shipping this seems somewhat ok, but you should remove the parts that are user-preferential.
-
usr/src/cmd/smbsrv/fksmbd/.dbxrc (Diff revision 1) If
CODEMGR_WS
is set,ROOT
should already be set too. What you're doing here would break MULTI_PROTO=yes -
usr/src/cmd/smbsrv/fksmbd/.dbxrc (Diff revision 1) Consider setting the
_32
and_64
variants, explicitly and correctly. -
-
-
-
usr/src/cmd/smbsrv/fksmbd/Run.sh (Diff revision 1) It'd be even more careful to make yourself a temp directory under there.
-
usr/src/cmd/smbsrv/fksmbd/fksmbd_opipe.c (Diff revision 1) Either do it or decide not to and remove the
XXX
-
-
-
usr/src/cmd/smbsrv/smbd/smbd_doorsvc.c (Diff revision 1) Why is this not conditional on the fd any longer?
-
usr/src/cmd/smbsrv/smbd/smbd_doorsvc.c (Diff revision 1) Well, can we give it a better name then? because holy shit.
-
usr/src/cmd/smbsrv/smbd/smbd_main.c (Diff revision 1) "FAKE" seems a poor name for this, but I'm not immediately coming up with anything better.
-
-
-
usr/src/cmd/smbsrv/smbd/smbd_main.c (Diff revision 1) Not sure what "Later" is referring to here. Is this describing how the code behaves, or is it a note to yourself?
If the latter, remove it, or do what it suggests
-
usr/src/cmd/smbsrv/smbd/smbd_spool.c (Diff revision 1) More intermixed tabs and spaces, might as well fix it too
-
usr/src/lib/libfakekernel/Makefile.com (Diff revision 1) $(NOT_RELEASE_BUILD)
not${NOT_RELEASE_BUILD}
(I'm aware taht both work, but we use parens pretty much exclusively) -
-
usr/src/lib/libfakekernel/common/ksocket.c (Diff revision 1) This seems like something that'll bite you in the ass, and should probably be done now
-
usr/src/lib/libfakekernel/common/mapfile-vers (Diff revision 1) If you're trying to describe why this isn't here, write it out as a more full comment
-
-
usr/src/lib/smbsrv/libsmb/common/libsmb.h (Diff revision 1) Another thing that seems to be a separate bug/feature (at least it's all the same separate bug/feature)
-
-
usr/src/lib/smbsrv/libsmb/common/smb_cfg.c (Diff revision 1) Studio historically doesn't like trailing commas here. I can't remember whether that's a c99 thing or in general
-
-
-
usr/src/lib/smbsrv/libsmb/common/smb_info.c (Diff revision 1) This is an... unusual way to go about this. I presume that's what the old comment is suggesting.
Perhaps leave the mention that you'd prefer a real USDT provider?
-
-
-
usr/src/uts/common/fs/smbsrv/smb_fem.c (Diff revision 1) The old condition seemed more legible than breaking the ternary over 3 lines
-
-
usr/src/uts/common/fs/smbsrv/smb_fsops.c (Diff revision 1) This doesn't seem entirely related to this change either?
-
usr/src/uts/common/fs/smbsrv/smb_idmap.c (Diff revision 1) If this file is a copy or something from elsewhere, is there a way to make the diffs show that? It's unreviewable otherwise
-
usr/src/uts/common/fs/smbsrv/smb_idmap.c (Diff revision 1) You made the CIFS server support zones already, so presumably "This needs to be fixed"
-
-
usr/src/uts/common/fs/smbsrv/smb_net.c (Diff revision 1) I know you didn't do this, I just want to point out how horrific it is, and that you should do that already.
-
usr/src/uts/common/fs/smbsrv/smb_opipe.c (Diff revision 1) Don't XXX comment, either fix it or remove the comment.
-
usr/src/uts/common/fs/smbsrv/smb_server.c (Diff revision 1) Don't XXX, either do what needs to be done or remove the comment if it's wrong.
-
-
usr/src/uts/common/fs/smbsrv/smb_thread.c (Diff revision 1) Don't XXX, either fix it or remove the comment if it doesn't need fixing
-
-
usr/src/uts/common/fs/smbsrv/smb_tree.c (Diff revision 1) Seems like an unrelated, and potentially very important, fix.
-
usr/src/uts/common/fs/smbsrv/smb_vops.c (Diff revision 1) again, seems unrelated and perhaps important
-
usr/src/uts/common/fs/smbsrv/smb_vops.c (Diff revision 1) again, seems unrelated and perhaps important
-
-
usr/src/uts/common/smbsrv/smb_ioctl.h (Diff revision 1) follow the style of the rest of the file, with tabs between type and member
-
-
usr/src/uts/common/smbsrv/smb_ktypes.h (Diff revision 1) This is changing in size, is it really part of this bug?
-
-
-
-
You already know I'm pretty skeptical about how invasive this is, for what it brings (which I'm sure is valuable to you). One of the things that would show it's general utility is making libzpool use it, but you've decided not to do that. Have you looked into whether it would be hard, and whether the work you've done would be sufficient for it?
How maintainable is this scheme over the long term, how likely are we to run into things that cannot be faked?
I'm not against the concept (which surprises me, I thought I was), but going about it in such a currently smb-specific way worries me as far as its actual applicability, and the way it reaches all over the headers to get what it needs (and only what it needs).
The general use of the "FAKE" name is somewhat worrysome, in that it doesn't really tell you much about what it is if you're new to the system, and given it's now sprinkled all over the headers, it seems like a more descriptive name would be for the best.
I may have other thoughts to come too. I skipped out on a lot of the specifics of the library implementation.
It'd be good to get reviewers with architectural experience, given how far reaching you are. Consider pinging people like rmustacc, eschrock (or whoever is a good alternative for eschrock) etc.
5917 User-mode SMB server
Review Request #51 — Created May 11, 2015 and submitted
Information | |
---|---|
gwr | |
illumos-gate | |
5917 | |
Reviewers | |
general | |
5917 User-mode SMB server
See the issueIt's also available as a webrev:
http://ma.nexenta.com/gwr/smb-usr1/
Has been used in production for more than a year.
smbtorture, MS CIFS test suite
Change Summary:
Rich Lowe's review.
Change Summary:
Decided to pull in a later version of the SMB1 signing support here, so that illumos doesn't see the (hack-ish) version that directly uses the low-level MD5 support.
Testing Done: |
|
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 3 (+14496 -2000)
|
Change Summary:
Updates from a header cleanup experiment Albert Lee asked me to try.
(Building with -D_KERNEL). We decided not to do that, but
some of the header cleanup the resulted is worth keeping.
Diff: |
Revision 4 (+14602 -2034)
|
---|
Change Summary:
richlowe review (last four issues?)
Diff: |
Revision 5 (+14602 -2034)
|
---|
Change Summary:
Final (I hope).
Diff: |
Revision 6 (+14602 -2034)
|
---|