24 Apr, 2016

1 commit

  • Use xattr handlers for resolving attribute names. The amount of setup
    code required on cifs is nontrivial, so use the same get and set
    functions for all handlers, with switch statements for the different
    types of attributes in them.

    The set_EA handler can handle NULL values, so we don't need a separate
    removexattr function anymore. Remove the cifs_dbg statements related to
    xattr name resolution; they don't add much. Don't build xattr.o when
    CONFIG_CIFS_XATTR is not defined.

    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Al Viro

    Andreas Gruenbacher
     

09 Sep, 2013

1 commit

  • The existing NLS case conversion routines do not appropriately handle
    the (now common) case where the local host is using UTF8. This is
    because nls_utf8 has no support at all for converting a utf8 string
    between cases and the NLS infrastructure in general cannot handle
    a multibyte input character.

    In any case, what we really need for cifs is to emulate how we expect
    the server to convert the character to upper or lowercase. Thus, even
    if we had routines that could handle utf8 case conversion, we likely
    would end up with the wrong result if the name ends up being in the
    upper planes.

    This patch adds a new scheme for doing unicode case conversion. The
    case conversion tables that Microsoft has published for Windows 8
    have been converted to a set of lookup tables, and a routine is
    added to convert a wchar_t from lower to uppercase using those
    tables.

    Reported-and-Tested-by: Jan-Marek Glogowski
    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     

25 Sep, 2012

1 commit


25 Jul, 2012

3 commits


24 Jul, 2012

2 commits


23 May, 2012

1 commit

  • As with Linux nfs client, which uses "nfsvers=" or "vers=" to
    indicate which protocol to use for mount, specifying

    "vers=2.1"

    will force an SMB2 mount. When vers is not specified CIFS is used

    "vers=1"

    We can eventually autonegotiate down from SMB2 to CIFS
    when SMB2 is stable enough to make it the default, but this
    is for the future. At that time we could also implement a
    "maxprotocol" mount option as smbclient and Samba have today,
    but that would be premature until SMB2 is stable.

    Intially the SMB2 Kconfig option will depend on "BROKEN"
    until the merge is complete, and then be "EXPERIMENTAL"
    When it is no longer experimental we can consider changing
    the default protocol to attempt first.

    Signed-off-by: Pavel Shilovsky
    Signed-off-by: Jeff Layton
    Acked-by: Shirish Pargaonkar
    Signed-off-by: Steve French

    Steve French
     

17 May, 2012

1 commit


19 May, 2011

1 commit

  • local cifs functions (repost)

    Using kernel crypto APIs for DES encryption during LM and NT hash generation
    instead of local functions within cifs.
    Source file smbdes.c is deleted sans four functions, one of which
    uses ecb des functionality provided by kernel crypto APIs.

    Remove function SMBOWFencrypt.

    Add return codes to various functions such as calc_lanman_hash,
    SMBencrypt, and SMBNTencrypt. Includes fix noticed by Dan Carpenter.

    Signed-off-by: Shirish Pargaonkar
    CC: Dan Carpenter
    Acked-by: Jeff Layton
    Signed-off-by: Steve French

    Steve French
     

28 Jan, 2011

1 commit

  • Replaced md4 hashing function local to cifs module with kernel crypto APIs.
    As a result, md4 hashing function and its supporting functions in
    file md4.c are not needed anymore.

    Cleaned up function declarations, removed forward function declarations,
    and removed a header file that is being deleted from being included.

    Verified that sec=ntlm/i, sec=ntlmv2/i, and sec=ntlmssp/i work correctly.

    Signed-off-by: Shirish Pargaonkar
    Reviewed-by: Jeff Layton
    Signed-off-by: Steve French

    Shirish Pargaonkar
     

26 Jan, 2011

1 commit


07 Dec, 2010

1 commit

  • Some of the code under CONFIG_CIFS_ACL is dependent upon code under
    CONFIG_CIFS_EXPERIMENTAL, but the Kconfig options don't reflect that
    dependency. Move more of the ACL code out from under
    CONFIG_CIFS_EXPERIMENTAL and under CONFIG_CIFS_ACL.

    Also move find_readable_file out from other any sort of Kconfig
    option and make it a function normally compiled in.

    Reported-and-Acked-by: Randy Dunlap
    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     

02 Aug, 2010

2 commits

  • Define server-level cache index objects (as managed by TCP_ServerInfo structs)
    and register then with FS-Cache. Each server object is created in the CIFS
    top-level index object and is itself an index into which superblock-level
    objects are inserted.

    The server objects are now keyed by {IPaddress,family,port} tuple.

    Signed-off-by: Suresh Jayaraman
    Signed-off-by: Steve French

    Suresh Jayaraman
     
  • Define CIFS for FS-Cache and register for caching. Upon registration the
    top-level index object cookie will be stuck to the netfs definition by
    FS-Cache.

    Signed-off-by: Suresh Jayaraman
    Signed-off-by: Steve French

    Suresh Jayaraman
     

01 Jan, 2009

1 commit

  • Remove the hopelessly misguided ->dir_notify(). The only instance (cifs)
    has been broken by design from the very beginning; the objects it creates
    are never destroyed, keep references to struct file they can outlive, nothing
    that could possibly evict them exists on close(2) path *and* no locking
    whatsoever is done to prevent races with close(), should the previous, er,
    deficiencies someday be dealt with.

    Signed-off-by: Al Viro

    Al Viro
     

25 Jan, 2008

1 commit


10 Jan, 2008

1 commit


03 Nov, 2007

1 commit

  • Add routines to handle upcalls to userspace via keyctl for the purpose
    of getting a SPNEGO blob for a particular uid and server combination.

    Clean up the Makefile a bit and set it up to only compile cifs_spnego
    if CONFIG_CIFS_UPCALL is set. Also change CONFIG_CIFS_UPCALL to depend
    on CONFIG_KEYS rather than CONFIG_CONNECTOR.

    cifs_spnego.h defines the communications between kernel and userspace
    and is intended to be shared with userspace programs.

    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     

26 Sep, 2007

1 commit


27 Feb, 2007

1 commit

  • For nfsd to work over cifs mounts (which presumably makes sense when trying
    to reexport mounts to windows, network appliances or Samba servers to nfs
    clients via nfs server).

    This is the first stage of that enablement, marked experimental and turned
    off by default.

    Signed-off-by: Steve French

    Steve French
     

01 Jun, 2006

1 commit


14 Feb, 2006

1 commit

  • The cifs session setup code has three cases, and a fourth for backlevel
    LANMAN2 style session setup needed to be added. This new session setup
    implmentation will eventually replace the other three and should be
    easier to read while fixing a few minor problems (not setting
    the LARGE READ/WRITEX flags when NTLMSSP was negotiated for example) and
    adding support for NTLMv2 (which will be added with the next patch. In the
    meantime, this code is marked in an CONFIG_CIFS_EXPERIMENTAL block and will
    not be turned on by default until it is tested against more server types.

    Signed-off-by: Steve French

    Steve French
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds