From: "Christopher R. Hertel" <crh-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
To: Jeremy Allison <jra-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
Cc: Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Pavel Shilovsky <piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>,
linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 06/11] CIFS: Respect MaxMpxCount field
Date: Fri, 09 Mar 2012 15:05:39 -0600 [thread overview]
Message-ID: <4F5A70A3.906@samba.org> (raw)
In-Reply-To: <20120309201439.GH9348@samba2>
On 03/09/2012 02:14 PM, Jeremy Allison wrote:
> On Fri, Mar 09, 2012 at 01:04:29PM -0600, Christopher R. Hertel wrote:
>>
>> The folks at Microsoft (who are, of course, well ahead in their
>> SMB2.x implementations) are very surprised that we are trying to
>> maintain a single codebase for both protocols. (I heard the same
>> thing from several Microsoft engineers during separate
>> conversations.)
>
> That's just a misunderstanding of how our codebase is
> structured, that's all.
>
> The SMB1 parser/protocol engine is completely different code from the SMB2
> parser/protocol engine in Samba.
I was thinking of the CIFS client, which is what Jeff was talking about.
> What is in common (as is also in common in Microsoft's codebase)
> is the code that implements the underlying file system functionality.
Having seen the code, I'd say it's mixed. There is actually a lot of work
done in the server system to massage and validate the requests before
converting them into NT system requests and passing them down.
I was surprised by that at first. I expected it for the DOS and OS/2 calls.
Semantics for those needed to be converted to NT semantics, which made
sense. What surprised me was how much work was done on SMB_COM_NT_* commands.
Looking more closely, I found that some of the work done on NT-to-NT calls
was done to ensure that the DOS and OS/2 state were kept up to date. There
was other work done, however. It's not a simple pass-through. In part
because the SMB server has to defend the kernel from bogus calls and values.
The SMB2 server code does not need to worry about DOS and OS/2 semantics,
but there are a number of new features and behaviors it does need to handle.
So, the SMB2 code processes requests differently.
> They have a common NTFS (and now ReFS) codebase, we have a common
> map POSIX to Windows semantics layer.
...and at that level I agree. That layer can be a single layer accessed by
both protocols.
Keep in mind, though, that SMB1 is dead and will never make use of things
like durable, resilient, and persistent handles. It will also never fully
expose the semantics of ReFS. Similarly, SMB2 will never need to worry
about presenting DOS and OS/2 as SMB1 does.
So some of the semantics that file system mapping layer has to handle are
going to be purely for one protocol or the other. The biggest part of the
overlap there will be NTFS semantics... which is, admittedly, the lions
share of the market now and for some time to come.
Chris -)-----
--
"Implementing CIFS - the Common Internet FileSystem" ISBN: 013047116X
Samba Team -- http://www.samba.org/ -)----- Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/ -)----- ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/ -)----- crh-jFlgvBokg3lg9hUCZPvPmw@public.gmane.org
OnLineBook -- http://ubiqx.org/cifs/ -)----- crh-zuGDro9SezXYtjvyW6yDsg@public.gmane.org
next prev parent reply other threads:[~2012-03-09 21:05 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-22 7:32 [PATCH 0/11] Improve transport code for future SMB2 usage Pavel Shilovsky
[not found] ` <1329895984-9251-1-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-22 7:32 ` [PATCH 01/11] CIFS: Simplify inFlight logic Pavel Shilovsky
[not found] ` <1329895984-9251-2-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-27 22:53 ` Steve French
[not found] ` <CAH2r5msNLEF9qVvKsTVTUnPyUjk+7iYVJTxZgd_uuXLAE0iyRg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 9:38 ` Pavel Shilovsky
[not found] ` <CAKywueQNFbwDqwr7adWsUZmaYX28tz3kYnL1=4itBHAFV1aeaA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 11:31 ` Jeff Layton
[not found] ` <20120228063120.76265cd9-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-02-28 11:39 ` Pavel Shilovsky
2012-03-03 9:33 ` Pavel Shilovsky
2012-02-22 7:32 ` [PATCH 02/11] CIFS: Introduce credit-based flow control Pavel Shilovsky
2012-02-22 7:32 ` [PATCH 03/11] CIFS: Count blocking lock command Pavel Shilovsky
[not found] ` <1329895984-9251-4-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-27 23:23 ` Steve French
[not found] ` <CAH2r5mujUbTEe0xtk_sfM1xokCk7FnX=6JKO539ut88Z+RS7wA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 9:40 ` Pavel Shilovsky
2012-02-22 7:32 ` [PATCH 04/11] CIFS: Delete echo_retries module parm Pavel Shilovsky
[not found] ` <1329895984-9251-5-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-22 16:23 ` Jeff Layton
[not found] ` <20120222112323.3d1afe4b-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-02-23 6:16 ` Pavel Shilovsky
2012-02-27 23:39 ` Steve French
2012-02-22 7:32 ` [PATCH 05/11] CIFS: Make wait_for_free_request interruptible Pavel Shilovsky
[not found] ` <1329895984-9251-6-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-22 19:15 ` Jeff Layton
[not found] ` <20120222141534.5512c3bf-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-02-23 6:18 ` Pavel Shilovsky
[not found] ` <CAKywueR7tggS99buChze5WHFY2=daoHUkO41F+WTNfqRT64Syw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-27 23:54 ` Steve French
2012-02-22 7:32 ` [PATCH 06/11] CIFS: Respect MaxMpxCount field Pavel Shilovsky
[not found] ` <1329895984-9251-7-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-28 0:01 ` Steve French
[not found] ` <CAH2r5mvVToaHozN3=YgCCCWFFnjE9AP5xX_BF2JdxDj_JvKsbQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 16:43 ` Jeff Layton
[not found] ` <20120228114341.1629ed85-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-02-28 17:42 ` Steve French
[not found] ` <CAH2r5mvFyw8Cn8nXN9ZBZogBGVr5L5T9aX7Zs8DOiZgDUqGp1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 19:47 ` Jeff Layton
[not found] ` <20120228144736.18124fc3-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-02-28 20:03 ` Steve French
[not found] ` <CAH2r5mvJE+ACNVuv+HEQMuwvaMTzfOb7Msk4U1ZVnZ046AEi1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 20:53 ` Pavel Shilovsky
[not found] ` <CAKywueSxe_wZwudx3UK14C94o53zjghsTJJSah=CQSqy0uhZRQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 21:18 ` Steve French
[not found] ` <CAH2r5mvFiwpVwcBgfuXvEGC1_8snLMAsp4fRVEDMqTWXDJdu9w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-01 18:37 ` Jeff Layton
[not found] ` <20120301133747.5fc891b5-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-01 18:48 ` Jeremy Allison
2012-03-01 19:12 ` Jeff Layton
2012-03-01 19:18 ` Christopher R. Hertel
[not found] ` <4F4FCB69.6060705-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-02 15:45 ` Jeff Layton
2012-03-03 8:35 ` Pavel Shilovsky
[not found] ` <CAKywueRwzdak2LfpfVkiX2ue0A-0a15J9kO8kgUYseRPXM8Tfw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-03 12:09 ` Jeff Layton
[not found] ` <20120303070921.5ce2bb10-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2012-03-04 3:14 ` Steve French
[not found] ` <CAH2r5mvGjzS73bhgG54Yzcqui9qxfv7e3yrxWZX+weSUQB4cHA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-04 11:30 ` Jeff Layton
2012-03-09 12:39 ` Jeff Layton
[not found] ` <20120309073930.3a79fa10-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-03-09 16:45 ` Steve French
[not found] ` <CAH2r5mvzgnTcyhL-Rip9yHUEMsLOCFhfAoNdRyVqhNFin_A6mw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-09 19:04 ` Christopher R. Hertel
[not found] ` <4F5A543D.2040808-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-09 20:14 ` Jeremy Allison
2012-03-09 20:16 ` Steve French
[not found] ` <CAH2r5mvMWOVrKXYJjcKYwUR+yaJpzYysDoc+TvPmfN+RDHAQ5g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-03-09 21:07 ` Christopher R. Hertel
[not found] ` <4F5A712C.8030500-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-12 15:09 ` Jeff Layton
2012-03-09 21:05 ` Christopher R. Hertel [this message]
[not found] ` <4F5A70A3.906-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2012-03-09 21:14 ` Jeremy Allison
2012-02-22 7:33 ` [PATCH 07/11] CIFS: Separate protocol-specific code from transport routines Pavel Shilovsky
[not found] ` <1329895984-9251-8-git-send-email-piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org>
2012-02-28 0:03 ` Steve French
2012-02-22 7:33 ` [PATCH 08/11] CIFS: Separate protocol-specific code from demultiplex code Pavel Shilovsky
2012-02-22 7:33 ` [PATCH 09/11] CIFS: Separate protocol-specific code from cifs_readv_receive code Pavel Shilovsky
2012-02-22 7:33 ` [PATCH 10/11] CIFS: Expand CurrentMid field Pavel Shilovsky
2012-02-22 7:33 ` [PATCH 11/11] CIFS: Change mid_q_entry structure fields Pavel Shilovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F5A70A3.906@samba.org \
--to=crh-eunubhrolfbytjvyw6ydsg@public.gmane.org \
--cc=jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=jra-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org \
--cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=piastry-7qunaywFIewox3rIn2DAYQ@public.gmane.org \
--cc=smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.